Re: Fwd: [DPDK-memory] how qemu waste such long time under dpdk huge page envriment?
On Mon, Jun 19, 2017 at 05:30:59PM +0800, Sam wrote:
> Hi all,
> I'm running `QEMU_CMD ...` to create a vm under dpdk huge page envriment
> (which set huge page 1G). And I enable all events in qemu.
Please provide the full QEMU command line you are using.
> For qemu and ovs-dpdk(ovs-2.4.9 with dpdk-2.2.0) environment, detail log is:
> > firstname.lastname@example.org:object_dynamic_cast_assert
> qemu:memory-region->qemu:memory-region (/home/hu
> > anghuai/cloud/contrib/qemu-2.6.0/memory.c:1076:memory_region_initfn)
> > email@example.com:object_dynamic_cast_assert
> qio-channel-socket->qio-channel-socket (io/chann
> > el-socket.c:389:qio_channel_socket_init)
> I don't know why qemu doing 'memory_region_initfn' function in this 10
> second, does anyone know this?
If memory initialization takes a long time, this is likely a result of
QEMU pre-allocating the memory pages, which is a fairly slow procedure,
that can have noticable startup time impact for guests with large RAM
This trace doesn't show enough info to say what is happening - a futex
is just the syscall used for mutex locking, so that just shows that
thread 5900 is waiting for some lock. This doesn't imply the time is
wasted, or really saying anything useful at all.
Meanwhile thread 5899 was doing some mmap calls. There's no obvious
relationship between the times in thread 5900 and 58909 in this trace.
The 9 second gap here is just coincidental.