On 5 March 2015 at 02:02, Markus Armbruster <arm...@redhat.com> wrote:
> zhanghailiang <zhang.zhanghaili...@huawei.com> writes:
>
>> From: Xiangyou Xie <xiexiang...@huawei.com>
>>
>> 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 <xiexiang...@huawei.com>
>> Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com>
>> ---
>>  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?

Yeah, this doesn't seem great. Surely the actual problem here
is that we're doing something that takes 30 seconds to initialise
as part of our command line option parsing phase ?

-- PMM

Reply via email to