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