[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: |
Markus Armbruster |
Subject: |
Re: [PATCH v2 4/7] util: Add write-only "node-affinity" property for ThreadContext |
Date: |
Wed, 12 Oct 2022 10:03:07 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
David Hildenbrand <david@redhat.com> writes:
> 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
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 <armbru@redhat.com>
- Re: [PATCH v2 3/7] util: Introduce ThreadContext user-creatable object, (continued)
- Re: [PATCH v2 3/7] util: Introduce ThreadContext user-creatable object, David Hildenbrand, 2022/10/11
- Re: [PATCH v2 3/7] util: Introduce ThreadContext user-creatable object, Markus Armbruster, 2022/10/12
- Re: [PATCH v2 3/7] util: Introduce ThreadContext user-creatable object, David Hildenbrand, 2022/10/12
- Re: [PATCH v2 3/7] util: Introduce ThreadContext user-creatable object, Markus Armbruster, 2022/10/12
- Re: [PATCH v2 3/7] util: Introduce ThreadContext user-creatable object, David Hildenbrand, 2022/10/12
[PATCH v2 5/7] util: Make qemu_prealloc_mem() optionally consume a ThreadContext, David Hildenbrand, 2022/10/10
[PATCH v2 2/7] util: Introduce qemu_thread_set_affinity() and qemu_thread_get_affinity(), David Hildenbrand, 2022/10/10
[PATCH v2 4/7] util: Add write-only "node-affinity" property for ThreadContext, David Hildenbrand, 2022/10/10
[PATCH v2 6/7] hostmem: Allow for specifying a ThreadContext for preallocation, David Hildenbrand, 2022/10/10
[PATCH v2 7/7] vl: Allow ThreadContext objects to be created before the sandbox option, David Hildenbrand, 2022/10/10
Re: [PATCH v2 0/7] hostmem: NUMA-aware memory preallocation using ThreadContext, Dr. David Alan Gilbert, 2022/10/10