David Hildenbrand <da...@redhat.com> writes:

> On 11.10.22 08:03, Markus Armbruster wrote:
>> David Hildenbrand <da...@redhat.com> writes:
>> 
>>> Let's make it easier to pin threads created via a ThreadContext to
>>> all CPUs currently belonging to a given set of NUMA nodes -- which is the
>>> common case.
>>>
>>> "node-affinity" is simply a shortcut for setting "cpu-affinity" manually
>>> to the list of CPUs belonging to the set of nodes. This property can only
>>> be written.
>>>
>>> A simple QEMU example to set the CPU affinity to Node 1 on a system with
>>> two NUMA nodes, 24 CPUs each:
>>>      qemu-system-x86_64 -S \
>>>        -object thread-context,id=tc1,node-affinity=1
>>>
>>> And we can query the cpu-affinity via HMP/QMP:
>>>      (qemu) qom-get tc1 cpu-affinity
>>>      [
>>>          1,
>>>          3,
>>>          5,
>>>          7,
>>>          9,
>>>          11,
>>>          13,
>>>          15,
>>>          17,
>>>          19,
>>>          21,
>>>          23,
>>>          25,
>>>          27,
>>>          29,
>>>          31,
>>>          33,
>>>          35,
>>>          37,
>>>          39,
>>>          41,
>>>          43,
>>>          45,
>>>          47
>>>      ]
>> 
>> Double-checking my understanding: on this system, the even CPUs belong
>> to NUMA node 0, and the odd ones to node 1.  Setting node-affinity=1 is
>> therefore sugar for setting cpu-affinity to the set of even CPUs.
>> Correct?
>
> Yes!
>
> # lscpu
> ...
> NUMA:
>   NUMA node(s):          2
>   NUMA node0 CPU(s):     
> 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46
>   NUMA node1 CPU(s):     
> 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47

Thanks!

>>> We cannot query the node-affinity:
>>>      (qemu) qom-get tc1 node-affinity
>>>      Error: Insufficient permission to perform this operation
>> 
>> The error message is somewhat misleading.  "Insufficient permission"
>> suggests this could work if I had more "permission".  Not the case.  The
>> message comes from object_property_get(), i.e. it's not this patch's
>> fault.  I'll post a patch to improve it.
>
> I agree, thanks!

QAPI schema
Acked-by: Markus Armbruster <arm...@redhat.com>


Reply via email to