From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:60862) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1b5m-0007wk-Lo for qemu-devel@nongnu.org; Wed, 06 Mar 2019 13:16:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h1b5k-0000kS-FW for qemu-devel@nongnu.org; Wed, 06 Mar 2019 13:16:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34186) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h1b5i-0000bC-7k for qemu-devel@nongnu.org; Wed, 06 Mar 2019 13:16:32 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D8B63300B916 for ; Wed, 6 Mar 2019 18:16:16 +0000 (UTC) Date: Wed, 6 Mar 2019 18:16:08 +0000 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Message-ID: <20190306181608.GL20806@redhat.com> Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= References: <1551893605-236413-1-git-send-email-imammedo@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1551893605-236413-1-git-send-email-imammedo@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2] numa: warn if numa 'mem' option or default RAM splitting between nodes is used. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: qemu-devel@nongnu.org, ehabkost@redhat.com, libvir-list@redhat.com, eblake@redhat.com 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 > --- > 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 > > -@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 > -split equally between them. > +@samp{memdev} 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 :|