All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.