[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default R
From: |
Daniel P . Berrangé |
Subject: |
Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used. |
Date: |
Wed, 6 Mar 2019 18:16:08 +0000 |
User-agent: |
Mutt/1.11.3 (2019-02-01) |
On Wed, Mar 06, 2019 at 06:33:25PM +0100, Igor Mammedov wrote:
> Amend -numa option docs and print warnings if 'mem' option or default RAM
> splitting between nodes is used. It's intended to discourage users from using
> configuration that allows only to fake NUMA on guest side while leading
> to reduced performance of the guest due to inability to properly configure
> VM's RAM on the host.
>
> In NUMA case, it's recommended to always explicitly configure guest RAM
> using -numa node,memdev={backend-id} option.
>
> Signed-off-by: Igor Mammedov <address@hidden>
> ---
> numa.c | 5 +++++
> qemu-options.hx | 12 ++++++++----
> 2 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/numa.c b/numa.c
> index 3875e1e..42838f9 100644
> --- a/numa.c
> +++ b/numa.c
> @@ -121,6 +121,8 @@ static void parse_numa_node(MachineState *ms,
> NumaNodeOptions *node,
>
> if (node->has_mem) {
> numa_info[nodenr].node_mem = node->mem;
> + warn_report("Parameter -numa node,mem is obsolete,"
> + " use -numa node,memdev instead");
My comments from v1 still apply. We must not do this as long as
libvirt has no choice but to continue using this feature.
> }
> if (node->has_memdev) {
> Object *o;
> @@ -407,6 +409,9 @@ void numa_complete_configuration(MachineState *ms)
> if (i == nb_numa_nodes) {
> assert(mc->numa_auto_assign_ram);
> mc->numa_auto_assign_ram(mc, numa_info, nb_numa_nodes, ram_size);
> + warn_report("Default splitting of RAM between nodes is obsolete,"
> + " Use '-numa node,memdev' to explicitly define RAM"
> + " allocation per node");
> }
>
> numa_total = 0;
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 1cf9aac..61035cb 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -206,10 +206,14 @@ For example:
> -numa cpu,node-id=0,socket-id=0 -numa cpu,node-id=1,socket-id=1
> @end example
>
> address@hidden assigns a given RAM amount to a node. @samp{memdev}
> -assigns RAM from a given memory backend device to a node. If
> address@hidden and @samp{memdev} are omitted in all nodes, RAM is
> -split equally between them.
> address@hidden assigns RAM from a given memory backend device to a node.
> +
> +Legacy options/behaviour: @samp{mem} assigns a given RAM amount to a node.
> +If @samp{mem} and @samp{memdev} are omitted in all nodes, RAM is split
> equally
> +between them. Option @samp{mem} and default RAM splitting are obsolete as
> they
> +do not provide means to manage RAM on the host side and only allow QEMU to
> fake
> +NUMA support which in practice could degrade VM performance.
> +It's advised to always explicitly configure NUMA RAM by using the
> @samp{memdev} option.
>
> @samp{mem} and @samp{memdev} are mutually exclusive. Furthermore,
> if one node uses @samp{memdev}, all of them have to use it.
> --
> 2.7.4
>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used., Igor Mammedov, 2019/03/06
- Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used.,
Daniel P . Berrangé <=
- Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used., Igor Mammedov, 2019/03/06
- Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used., Daniel P . Berrangé, 2019/03/07
- Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used., Igor Mammedov, 2019/03/19
- Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used., Daniel P . Berrangé, 2019/03/19
- [Qemu-devel] Evolve or go extinct (was: [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used.), Markus Armbruster, 2019/03/20
- Re: [Qemu-devel] [libvirt] Evolve or go extinct (was: [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used.), Peter Krempa, 2019/03/20
- Re: [Qemu-devel] Evolve or go extinct (was: [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used.), Daniel P . Berrangé, 2019/03/20
- Re: [Qemu-devel] Evolve or go extinct, Markus Armbruster, 2019/03/20
- Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used., Igor Mammedov, 2019/03/20
- Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used., Daniel P . Berrangé, 2019/03/20