[libvirt] Problem with setting up KVM guests to use HugePages

Vivi L clearasu at gmail.com
Wed Jun 10 21:20:40 UTC 2015


Michal Privoznik <mprivozn <at> redhat.com> writes:

> 
> On 10.06.2015 01:05, Vivi L wrote:
> > Kashyap Chamarthy <kchamart <at> redhat.com> writes:
> > 
> > 
> >> You might want re-test by explicitly setting the 'page' element and
> >> 'size' attribute? From my test, I had something like this:
> >>
> >>     $ virsh dumpxml f21-vm | grep hugepages -B3 -A2 
> >>       <memory unit='KiB'>2000896</memory>
> >>       <currentMemory unit='KiB'>2000000</currentMemory>
> >>       <memoryBacking>
> >>         <hugepages>
> >>           <page size='2048' unit='KiB' nodeset='0'/>
> >>         </hugepages>
> >>       </memoryBacking>
> >>       <vcpu placement='static'>8</vcpu>
> >>
> >> I haven't tested this exhaustively, but some basic test notes here:
> >>
> >>     https://kashyapc.fedorapeople.org/virt/test-hugepages-with-libvirt.txt
> > 
> > Current QEMU does not support setting <page> element. Could it be the 
> > cause of my aforementioned problem?
> > 
> > unsupported configuration: huge pages per NUMA node are not supported 
> > with this QEMU
> > 
> 
> So this is explanation why the memory for you guest is not backed by
> hugepages.

I thought setting hugepages per NUMA node is a nice-to-have feature. 
Is it required to enable the use of hugepages for the guest? 
 
> Can you please share the qemu command line that libvirt generated for
> your guest?

If setting 100 hugepages, the guest can start while not using hugepages 
at all. In this case,
[root at local ~]# ps -ef | grep qemu
qemu      3403     1 99 17:42 ?        00:36:42 /usr/libexec/qemu-kvm -name 
qvpc-di-03-sf -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -cpu host 
-m 131072 -realtime mlock=off -smp 32,sockets=2,cores=16,threads=1 
-numa node,nodeid=0,cpus=0-15,mem=65536 -numa node,nodeid=1,
cpus=16-31,mem=65536 -uuid e1b72349-4a0b-4b91-aedc-fd34e92251e4 -
smbios type=1,serial=SCALE-SLOT-03 -no-user-config -nodefaults -chardev 
socket,id=charmonitor,path=/var/lib/libvirt/qemu/qvpc-di-03-sf.monitor,server,
nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc 
-no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,
addr=0x1.0x2 -drive file=/var/lib/libvirt/images/asr5700/qvpc-di-03-sf-
hda.img,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-
hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive 
if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-
cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -chardev 
pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev 
pty,id=charserial1 -device isa-serial,chardev=charserial1,id=serial1 
-vnc 127.0.0.1:0 -vga cirrus -device i6300esb,id=watchdog0,bus=pci.0,
addr=0x3 -watchdog-action reset -device 
vfio-pci,host=08:00.0,id=hostdev0,bus=pci.0,addr=0x5 -device vfio-
pci,host=09:00.0,id=hostdev1,bus=pci.0,addr=0x6 -device vfio-
pci,host=0a:00.0,id=hostdev2,bus=pci.0,addr=0x7 -device virtio-balloon-
pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on


> Michal
> 
> 






More information about the libvir-list mailing list