qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] vl: Adjust the place of processing '-mon'


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH] vl: Adjust the place of processing '-mon'
Date: Wed, 04 Mar 2015 18:02:33 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

zhanghailiang <address@hidden> writes:

> From: Xiangyou Xie <address@hidden>
>
> If VM is configured with large size of hugepage, when startup,
> it will consume lots of time to zero the hugepage memory in the function
> 'os_mem_prealloc'.
> Libvirtd will wait 30 seconds for qemu to establish the monitor,
> If the timeout triggers, libvirtd will send TERM signal to kill qemu.
>
> To solve the problem, adjust the processing of '-mon' to the ahead of 
> '-object'.
>
> Signed-off-by: Xiangyou Xie <address@hidden>
> Signed-off-by: zhanghailiang <address@hidden>
> ---
>  vl.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index 86bdce0..d0c03fe 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -4000,6 +4000,10 @@ int main(int argc, char **argv, char **envp)
>          exit(0);
>      }
>  
> +    if (qemu_opts_foreach(qemu_find_opts("mon"), mon_init_func, NULL, 1) != 
> 0) {
> +        exit(1);
> +    }
> +
>      if (qemu_opts_foreach(qemu_find_opts("object"),
>                            object_create, NULL, 0) != 0) {
>          exit(1);
> @@ -4154,10 +4158,6 @@ int main(int argc, char **argv, char **envp)
>  
>      parse_numa_opts();
>  
> -    if (qemu_opts_foreach(qemu_find_opts("mon"), mon_init_func, NULL, 1) != 
> 0) {
> -        exit(1);
> -    }
> -
>      if (foreach_device_config(DEV_SERIAL, serial_parse) < 0)
>          exit(1);
>      if (foreach_device_config(DEV_PARALLEL, parallel_parse) < 0)


Errors after monitor initialization look ugly when a monitor is on
stdio:

    $ qemu -nodefaults -monitor stdio -vga xxx
    QEMU 2.2.50 monitor - type 'help' for more information
    (qemu) Unknown vga type: xxx
    $

This patch initializes monitors earlier, thus makes more errors look
ugly.  Do we care?

If not: should we initialize them even earlier?  They depend on
character devices, so what about right after loop calling
chardev_init_func()?

Our startup is a big happy ad hoc mess.  A more organizes program would
read and check configuration first (quick, can fail), then allocate
resources (quick, can fail), then initialize (somewhat slow, failure
unlikely).



reply via email to

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