From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32931) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUZ6u-0004g8-J2 for qemu-devel@nongnu.org; Wed, 26 Aug 2015 07:43:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZUZ6q-0004q5-Ng for qemu-devel@nongnu.org; Wed, 26 Aug 2015 07:43:20 -0400 Received: from e06smtp10.uk.ibm.com ([195.75.94.106]:55665) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUZ6q-0004px-DI for qemu-devel@nongnu.org; Wed, 26 Aug 2015 07:43:16 -0400 Received: from /spool/local by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 26 Aug 2015 12:43:14 +0100 Received: from b06cxnps4074.portsmouth.uk.ibm.com (d06relay11.portsmouth.uk.ibm.com [9.149.109.196]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id E9D9E219007B for ; Wed, 26 Aug 2015 12:36:34 +0100 (BST) Received: from d06av01.portsmouth.uk.ibm.com (d06av01.portsmouth.uk.ibm.com [9.149.37.212]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t7QBaw1U17367214 for ; Wed, 26 Aug 2015 11:37:01 GMT Received: from d06av01.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av01.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t7QBamxf002732 for ; Wed, 26 Aug 2015 05:36:49 -0600 Date: Wed, 26 Aug 2015 13:36:37 +0200 From: Cornelia Huck Message-ID: <20150826133637.0b9bcaff.cornelia.huck@de.ibm.com> In-Reply-To: <55DC6CAC.20107@redhat.com> References: <1437573590-2801-1-git-send-email-thuth@redhat.com> <20150819155813.GA32203@thinpad.lan.raisama.net> <55DC6CAC.20107@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Add another sanity check to smp_parse() function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Thomas Huth Cc: Peter Maydell , James Hogan , Eduardo Habkost , Max Filippov , Bastian Koppelmann , Anthony Green , Stefano Stabellini , Mark Cave-Ayland , Alexander Graf , qemu-devel@nongnu.org, Blue Swirl , Christian Borntraeger , Michael Walle , "Edgar E. Iglesias" , Paolo Bonzini , Jia Liu , Guan Xuetao , Aurelien Jarno , Richard Henderson On Tue, 25 Aug 2015 15:25:00 +0200 Thomas Huth wrote: > On 19/08/15 17:58, Eduardo Habkost wrote: > > On Wed, Jul 22, 2015 at 03:59:50PM +0200, Thomas Huth wrote: > >> The code in smp_parse already checks the topology information for > >> sockets * cores * threads < cpus and bails out with an error in > >> that case. However, it is still possible to supply a bad configuration > >> the other way round, e.g. with: > >> > >> qemu-system-xxx -smp 4,sockets=1,cores=4,threads=2 > >> > >> QEMU then still starts the guest, with topology configuration that > >> is rather incomprehensible and likely not what the user wanted. > >> So let's add another check to refuse such wrong configurations. > >> > >> Signed-off-by: Thomas Huth > >> --- > >> vl.c | 8 +++++++- > >> 1 file changed, 7 insertions(+), 1 deletion(-) > >> > >> diff --git a/vl.c b/vl.c > >> index 5856396..c8d24b1 100644 > >> --- a/vl.c > >> +++ b/vl.c > >> @@ -1224,7 +1224,13 @@ static void smp_parse(QemuOpts *opts) > >> exit(1); > >> } > >> > >> - max_cpus = qemu_opt_get_number(opts, "maxcpus", 0); > >> + max_cpus = qemu_opt_get_number(opts, "maxcpus", cpus); > >> + if (sockets * cores * threads > max_cpus) { > >> + fprintf(stderr, "cpu topology: error: " > >> + "sockets (%u) * cores (%u) * threads (%u) > maxcpus (%u)\n", > >> + sockets, cores, threads, max_cpus); > >> + exit(1); > >> + } > > > > I am always afraid of breaking existing setups when we do that, because > > there may be existing VMs running with these weird configurations, and > > people won't be able to live-migrate them to a newer QEMU. > > > > But I think we really have to start refusing to run obviously broken > > configurations one day, or we will never fix this mess, so: > > > > Reviewed-by: Eduardo Habkost > > > > I want to apply this through the x86 tree, but I would like to get some > > Acked-by from other maintainers first. > > Ok, thanks! > > So *ping* to the other CPU core maintainers here ... could I get some > more ACKs, please? Looks reasonable. Acked-by: Cornelia Huck