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

Daniel P. Berrange berrange at redhat.com
Thu Jun 11 08:48:57 UTC 2015


On Thu, Jun 11, 2015 at 10:27:05AM +0200, Michal Privoznik wrote:
> On 11.06.2015 10:13, Daniel P. Berrange wrote:
> > On Wed, Jun 10, 2015 at 09:20:40PM +0000, Vivi L wrote:
> >> 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?
> > 
> > No, it should not be mandatory. You should be able to use
> > 
> >   <memoryBacking>
> >         <hugepages/>
> >   </memoryBacking>
> > 
> > With pretty much any KVM/QEMU version that exists. If that's
> > broken then its a libvit bug.
> 
> Unless hugepages are requested for guest NUMA nodes. In that case
> memory-backend-file object is required. From my investigation, this
> seems to be the case.

memory-backend-file should only be required if trying to setup
different hugepage configs for each guest NUMA node, or if trying
to pin each guest NUMA node to a different host node. If they just
want hugepages across the whole VM and no pinning shouldn't the
traditional setup work


Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list