[PATCH 00/10] Introduce virtio-mem <memory/> model

Michal Privoznik mprivozn at redhat.com
Wed Feb 3 16:27:04 UTC 2021


On 2/3/21 7:11 AM, Jing Qi wrote:
> I did some test for virtio-mem with libvirt upstream version
> v7.0.0-153-g5ea3ecd07d
>   & qemu-kvm-5.2.0-0.7.rc2.fc34.x86_64
> 
> S1. Start domain with memory device
> 
> 1. Domain configuration-
> <maxMemory slots='16' unit='KiB'>10485760</maxMemory>
>    <memory unit='KiB'>1572864</memory>
>    <currentMemory unit='KiB'>1572864</currentMemory>
>   ...
>    <cpu mode='host-model' check='partial'>
>      <numa>
>        <cell id='0' cpus='0-3' memory='1048576' unit='KiB'/>
>      </numa>
>    </cpu>
> ...
>    <memory model='virtio-mem'>
>        <target>
>          <size unit='KiB'>524288</size>
>          <node>0</node>
>          <block unit='KiB'>2048</block>
>          <requested unit='KiB'>393216</requested>
>        </target>
>        <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
> function='0x0'/>
>      </memory>
> #virsh start pc
>   Domain 'pc'  started
> 
> 2. The domain is started and check mem status, the actual size is "1048576"
> #virsh dommemstat pc
> actual 1048576

This is a bummer. What this represents is the actual value of membaloon.

> swap_in 0
> swap_out 0
> major_fault 257
> minor_fault 130540
> unused 604064
> available 761328
> usable 578428
> last_update 1612325471
> disk_caches 49632
> hugetlb_pgalloc 0
> hugetlb_pgfail 0
> rss 460260
> 
> 3. Then, check the active xml -
> # virsh dumpxml pc
> ...
> <memory unit='KiB'>1572864</memory>
>    <currentMemory unit='KiB'>1048576</currentMemory>
> ....
>   <memory model='virtio-mem'>
>        <target>
>          <size unit='KiB'>524288</size>
>          <node>0</node>
>          <block unit='KiB'>2048</block>
>          <requested unit='KiB'>393216</requested>
>          <actual unit='KiB'>0</actual>
>        </target>
>        <alias name='virtiomem0'/>
>        <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
> function='0x0'/>
>      </memory>
> 
>   Question1 : the value of actual is "0". Is it expected?

Yes and no. It shows that we need <actual/> because guest might ignore 
request to change the requested size. What you're probably experiencing 
is that you haven't loaded virtio_mem module and thus the virtio-mem 
device is ignoring requests for change (well, kernel is ignoring them, 
whatever).

> 
> S2. Also, tried to use hugepage to start the domain -
> 
> <memory model='virtio-mem'>
>        <target>
>          <size unit='KiB'>524288</size>
>          <node>0</node>
>          <block unit='KiB'>2048</block>
>          <requested unit='KiB'>393216</requested>
>          <actual unit='KiB'>0</actual>
>        </target>
>        <alias name='virtiomem0'/>
>        <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
> function='0x0'/>
>      </memory>
> 
> #virsh start pc
> error: Failed to start domain 'pc'
> error: internal error: process exited while connecting to monitor:
> 2021-02-03T05:50:33.157836Z qemu-system-x86_64: -object
> memory-backend-file,id=memvirtiomem0,mem-path=/dev/hugepages/libvirt/qemu/9-pc,size=536870912,host-nodes=0,policy=bind:
> can't open backing store /dev/hugepages/libvirt/qemu/9-pc for guest RAM:
> Permission denied
> 
> Question 2: any bug here?

Ah, good catch! I'll fix this in v2.

Michal




More information about the libvir-list mailing list