qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Qemu start VM in huge page without '-mem-prealloc' will


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] Qemu start VM in huge page without '-mem-prealloc' will get memory leak?
Date: Thu, 26 Oct 2017 14:29:12 +0100
User-agent: Mutt/1.9.1 (2017-09-22)

* Sam (address@hidden) wrote:
> I don't know if this process is:
> 1. qemu call kernel API to alloc 40G memory.
> 2. qemu process is killed by hand.
> 3. kernel alloc 40G memory, but qemu process is down, then this 40G is left
> in kernel.

It might be interesting to check the files in:
/sys/kernel/mm/hugepages/hugepages-2048kB

what do free_hugepages and nr_hugepages say?

Is there a file left in /mnt/huge ?

Dave

> 
> 2017-10-26 11:54 GMT+08:00 Sam <address@hidden>:
> 
> > BTW, I start VM by this command, and then stop it, then memory leak
> > happens.
> >
> > To compare, I start another VM, and wait for about 10 minutes, and then
> > kill it as I does above, then no memory leak happens.
> >
> > So is this a bug of KVM or qemu ?
> >
> > 2017-10-26 11:09 GMT+08:00 Sam <address@hidden>:
> >
> >> For qemu-2.6.0, in huge page (1G) environment, after kill the qemu
> >> process, memory which is alloc for the vm could not be released. Detail is
> >> bellow.
> >> Or should I use some specific command to stop vm? I want to know if there
> >> someone has the same problem?
> >>
> >> The start up command is:
> >>
> >> CMD1="$QEMU_CMD -D qemu.log -trace events=qemu-events-all -enable-kvm
> >> -cpu qemu64,+vmx,+ssse3,+sse4.1,+sse4.2,+x2apic,+aes,+avx,+vme,+p
> >> at,+ss,+pclmulqdq,+xsave,level=13 -machine pc,accel=kvm -chardev
> >> socket,id=hmqmondev,port=55908,host=127.0.0.1,nodelay,server,nowait -mon
> >> chardev=hmqmondev,id=hmqmon,mode=readline -rtc
> >> base=utc,clock=host,driftfix=none -usb -device usb-tablet -daemonize
> >> -nodefaults -nodefconfig -no-kvm-pit-reinjection -global
> >> kvm-pit.lost_tick_policy=discard -vga std -k en-us -smp 8 -name
> >> gangyewei-qemutime-1 -m 40960 -boot order=cdn -vnc :8,password -drive
> >> file=$DISK_0,if=none,id=drive_0,format=qcow2,cache=none,aio=native
> >> -device virtio-blk-pci,id=dev_drive_0,drive=drive_0,bus=pci.0,addr=0x5
> >> -drive file=$DISK_1,if=none,id=drive_1,format=qcow2,cache=none,aio=native
> >> -device virtio-blk-pci,id=dev_drive_1,drive=drive_1,bus=pci.0,addr=0x6
> >> -drive file=$DISK_2,if=none,id=drive_2,format=qcow2,cache=none,aio=native
> >> -device virtio-blk-pci,id=dev_drive_2,drive=drive_2,bus=pci.0,addr=0x7
> >> -device ide-cd,drive=ide0-cd0,bus=ide.1,unit=1 -drive
> >> id=ide0-cd0,media=cdrom,if=none -chardev socket,id=char-n-52b49b80,path
> >> =/usr/local/var/run/openvswitch/n-52b49b80,server -netdev
> >> type=vhost-user,id=n-52b49b80,chardev=char-n-52b49b80,vhostforce=on
> >> -device virtio-net-pci,netdev=n-52b49b80,mac=00:22:52:b4:9b:80,id=ne
> >> tdev-n-52b49b80,addr=0xf$(nic_speed 10000) -object
> >> memory-backend-file,id=mem,size=40960M,mem-path=/mnt/huge,share=on -numa
> >> node,memdev=mem -pidfile $PID_FILE -chardev socket,path=/opt/cloud/
> >> workspace/servers/4511f52a-f450-40d3-9417-a1e0a27ed507/qga.sock,server,nowait,id=qga0
> >> -device virtio-serial -device virtserialport,chardev=qga0,na
> >> me=org.qemu.guest_agent.0"
> >>
> >> The stop script is just kill this process.
> >>
> >> the result of `cat /proc/meminfo` show memory is still there.
> >>
> >
> >
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

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