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