[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.10 22/23] numa: add '-numa cpu, ...' optio
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH for-2.10 22/23] numa: add '-numa cpu, ...' option for property based node mapping |
Date: |
Thu, 23 Mar 2017 08:23:32 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 03/22/2017 08:32 AM, Igor Mammedov wrote:
> legacy cpu to node mapping is using cpu index values to map
> VCPU to node with help of '-numa node,nodeid=node,cpus=x[-y]'
> option. However cpu index is internal concept and QEMU users
> have to guess /reimplement qemu's logic/ to map it to
> a concrete cpu socket/core/thread to make sane CPUs
> placement across numa nodes.
>
> This patch allows to map cpu objects to numa nodes using
> the same properties as used for cpus with -device/device_add
> (socket-id/core-id/thread-id/node-id).
>
> At present valid properties/values to address CPUs could be
> fetched using hotpluggable-cpus monitor/qmp command, it will
> require user to start qemu twice when creating domain to fetch
> possible CPUs for a machine type/-smp layout first and
> then the second time with numa explicit mapping for actual
> usage. The first step results could be saved and reused to
> set/change mapping later as far as machine type/-smp stays
> the same.
>
> Proposed impl. supports exact and wildcard matching to
> simplify CLI and allow to set mapping for a specific cpu
> or group of cpu objects specified by matched properties.
>
> For example:
>
> # exact mapping x86
> -numa cpu,node-id=x,socket-id=y,core-id=z,thread-id=n
>
> # exact mapping SPAPR
> -numa cpu,node-id=x,core-id=y
>
> # wildcard mapping, all cpu objects that match socket-id=y
> # are mapped to node-id=x
> -numa cpu,node-id=x,socket-id=y
>
> Signed-off-by: Igor Mammedov <address@hidden>
> ---
> numa.c | 13 +++++++++++++
> qapi-schema.json | 7 +++++--
> qemu-options.hx | 23 ++++++++++++++++++++++-
> 3 files changed, 40 insertions(+), 3 deletions(-)
>
>
> address@hidden option is new alternative to @samp{cpus} option
s/is/is a/
> +uses @samp{socket-id|core-id|thread-id} properties to assign
s/uses/which uses/
> +CPU objects to a @var{node} using topology layout properties of CPU.
> +Set of properties is machine specific, and depends on used machine
s/Set/The set/
> +type/@samp{smp} options. It could be queried with @samp{hotpluggable-cpus}
> +monitor command.
> address@hidden property specifies @var{node} to which CPU object
> +will be assigned, it's required for @var{node} to be declared
> +with @samp{node} option before it's used with @samp{cpu} option.
> +
> +For example:
> address@hidden
> +-M pc \
> +-smp 1,sockets=2,maxcpus=2 \
> +-numa node,nodeid=0 -numa node,nodeid=1 \
> +-numa cpu,node-id=0,socket-id=0 -numa cpu,node-id=1,socket-id=1
> address@hidden example
> +
> @samp{mem} assigns a given RAM amount to a node. @samp{memdev}
> assigns RAM from a given memory backend device to a node. If
> @samp{mem} and @samp{memdev} are omitted in all nodes, RAM is
>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH for-2.10 17/23] numa: remove no longer used numa_get_node_for_cpu(), (continued)
- [Qemu-devel] [PATCH for-2.10 18/23] numa: remove no longer need numa_post_machine_init(), Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 20/23] numa: use possible_cpus for not mapped CPUs check, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 19/23] machine: call machine init from wrapper, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 21/23] numa: remove node_cpu bitmaps as they are no longer used, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 23/23] tests: check -numa node, cpu=props_list usecase, Igor Mammedov, 2017/03/22
- [Qemu-devel] [PATCH for-2.10 22/23] numa: add '-numa cpu, ...' option for property based node mapping, Igor Mammedov, 2017/03/22