70d75ff qemuBuildMemoryBackendStr: Honour passed @pagesize

Authored and Committed by mprivozn 8 years ago
    qemuBuildMemoryBackendStr: Honour passed @pagesize
    
    So far the argument has not much meaning and was practically ignored.
    This is not good since when doing memory hotplug, the size of desired
    hugepage backing is passed in that argument. Taking closer look at the
    tests I'm fixing reveals the bug. For instance, while the following is
    in the test:
    
        <memory model='dimm'>
          <source>
            <nodemask>1-3</nodemask>
            <pagesize unit='KiB'>4096</pagesize>
          </source>
          <target>
            <size unit='KiB'>524287</size>
            <node>0</node>
          </target>
          <address type='dimm' slot='0' base='0x100000000'/>
        </memory>
    
    the generated commandline corresponding to this XML was:
    
        -object memory-backend-ram,id=memdimm0,size=536870912,\
        host-nodes=1-3,policy=bind
    
    Have you noticed? Yes, memory-backend-ram! Nothing can be further away
    from the right answer. The hugepage backing is requested in the XML
    and we happily ignore it. This is just not right. It's
    memory-backend-file which should have been used:
    
        -object memory-backend-file,id=memdimm0,prealloc=yes,\
        mem-path=/dev/hugepages4M/libvirt/qemu,size=536870912,\
        host-nodes=1-3,policy=bind
    
    The problem is, that @pagesize passed to qemuBuildMemoryBackendStr
    (where this part of commandline is built) was ignored. The hugepage to
    back memory was searched only and only by NUMA nodes pinning. This
    works only for regular guest NUMA nodes.
    
    Then, I'm changing the hugepages size in the test XMLs too. This is
    simply because in the test suite we create dummy mount points just for
    2M and 1G hugepages. And in the test 4M was requested. I'm sticking to
    2M, but 1G should just work too.
    
    Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
    
        
file modified
+13 -12
file modified
+3 -2