On 2015/3/6 17:51, Peter Maydell wrote:
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 n 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 ?
Yes, it is the problem of memset() in os_mem_prealloc,
if we configure VM with large size memory (prealloc is also configured),
it will consume lots of time. we can certainly do this consuming time work
later,
after command line option parsing phase, but this scenario is more easy.
-- PMM
.