qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Sam <batmanustc@gmail.com>
Cc: QEMU Developers <qemu-devel@nongnu.org>
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	[thread overview]
Message-ID: <20171026132911.GC2585@work-vm> (raw)
In-Reply-To: <CAOE=1Z2Rjg3b7P1VJw6FDvnTwu7JtZWQ_PD4nBQgghpn1M=B6w@mail.gmail.com>

* Sam (batmanustc@gmail.com) 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 <batmanustc@gmail.com>:
> 
> > 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 <batmanustc@gmail.com>:
> >
> >> 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 / dgilbert@redhat.com / Manchester, UK

  reply	other threads:[~2017-10-26 13:29 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-26  3:09 [Qemu-devel] Qemu start VM in huge page without '-mem-prealloc' will get memory leak? Sam
2017-10-26  3:54 ` Sam
2017-10-26  9:22   ` Sam
2017-10-26 13:29     ` Dr. David Alan Gilbert [this message]
2017-10-26 14:02 ` Daniel P. Berrange
2017-10-27  3:28   ` Sam
2017-10-27  7:08     ` Daniel P. Berrange
2017-10-31  5:21       ` Sam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171026132911.GC2585@work-vm \
    --to=dgilbert@redhat.com \
    --cc=batmanustc@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).