On 8/5/22 11:25, Jin Huang wrote:
> Hi, libvirt-users
> How could I set up a memory-only and no-cpu NUMA node for the qemu-VM
> with the XML file?
>
> Seems each NUMA cell has to be bundled with some specific cpuids.
> If I write the element like this, it is wrong.
>
> <cpu mode='host-passthrough'>
> <numa>
> <cell id='0' cpus='0-3' memory='16' unit='GiB'/>
> <cell id='1' cpus='*null*' memory='16' unit='GiB'/>
> </numa>
> </cpu>
> Also if I ignore the cpus item, it is not acceptable for the virsh command.
>
> The reason I want the memory-only node is that I want to set up multiple
> memory tiers for the VM, just
> like https://stevescargall.com/2022/06/10/using-linux-kernel-memory-tiering/
> <https://stevescargall.com/2022/06/10/using-linux-kernel-memory-tiering/>
>
What you want to configure is so called HMAT (Heterogeneous Memory
Attribute Table). It can be configured by leaving out the @cpus
attribute completely. For instance like this:
<cpu mode='host-model' check='partial'>
<numa>
<cell id='0' cpus='0-5' memory='512000' unit='KiB' discard='yes'>
<distances>
<sibling id='0' value='10'/>
<sibling id='1' value='21'/>
</distances>
<cache level='3' associativity='direct' policy='writeback'>
<size value='10' unit='KiB'/>
<line value='8' unit='B'/>
</cache>
<cache level='1' associativity='direct' policy='writeback'>
<size value='8' unit='KiB'/>
<line value='5' unit='B'/>
</cache>
</cell>
<cell id='1' memory='512000' unit='KiB'>
<distances>
<sibling id='0' value='21'/>
<sibling id='1' value='10'/>
</distances>
</cell>
<interconnects>
<latency initiator='0' target='0' cache='1' type='access'
value='5'/>
<bandwidth initiator='0' target='0' type='access' value='204800'
unit='KiB'/>
</interconnects>
</numa>
</cpu>
This was introduced in libvirt-6.6.0 so you may need to upgrade.
Michal