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