qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 4/7] util: Add write-only "node-affinity" property for Thr


From: David Hildenbrand
Subject: Re: [PATCH v2 4/7] util: Add write-only "node-affinity" property for ThreadContext
Date: Tue, 11 Oct 2022 09:34:44 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1

On 11.10.22 08:03, Markus Armbruster wrote:
David Hildenbrand <david@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



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!

--
Thanks,

David / dhildenb




reply via email to

[Prev in Thread] Current Thread [Next in Thread]