qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 07/15] qapi: use mmap for QmpInputVisitor


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] [PATCH 07/15] qapi: use mmap for QmpInputVisitor
Date: Tue, 28 Jun 2016 10:29:18 +0100
User-agent: Mutt/1.6.1 (2016-04-27)

* Peter Lieven (address@hidden) wrote:
> this struct is approx 75kB

I wonder why it's so large.

The stack size in QmpInputVisitor; it's got a 1024 element stack
(QIV_STACK_SIZE) and I bet we never use anywhere near that.

But even then that's 1024 * a 3 pointer stack object, 24 bytes - 
I don't see where the rest of that 75kB comes from.
I'm a little wary about turning all these malloc's into mmap's
because we do seem to use things like input visitors for small
things; don't the cost of doing the mmap's add up in time
instead of space?

Dave


> Signed-off-by: Peter Lieven <address@hidden>
> ---
>  qapi/qmp-input-visitor.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c
> index aea90a1..b6f5dfd 100644
> --- a/qapi/qmp-input-visitor.c
> +++ b/qapi/qmp-input-visitor.c
> @@ -17,6 +17,7 @@
>  #include "qapi/qmp-input-visitor.h"
>  #include "qapi/visitor-impl.h"
>  #include "qemu/queue.h"
> +#include "qemu/mmap-alloc.h"
>  #include "qemu-common.h"
>  #include "qapi/qmp/types.h"
>  #include "qapi/qmp/qerror.h"
> @@ -378,14 +379,14 @@ Visitor *qmp_input_get_visitor(QmpInputVisitor *v)
>  void qmp_input_visitor_cleanup(QmpInputVisitor *v)
>  {
>      qobject_decref(v->root);
> -    g_free(v);
> +    qemu_anon_ram_munmap(v, sizeof(*v));
>  }
>  
>  QmpInputVisitor *qmp_input_visitor_new(QObject *obj, bool strict)
>  {
>      QmpInputVisitor *v;
>  
> -    v = g_malloc0(sizeof(*v));
> +    v = qemu_anon_ram_mmap(sizeof(*v));
>  
>      v->visitor.type = VISITOR_INPUT;
>      v->visitor.start_struct = qmp_input_start_struct;
> -- 
> 1.9.1
> 
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

[Prev in Thread] Current Thread [Next in Thread]