qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Andrew Jones <drjones@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	wanghaibin.wang@huawei.com, qemu-devel@nongnu.org,
	Yanan Wang <wangyanan55@huawei.com>,
	Igor Mammedov <imammedo@redhat.com>,
	yuzenghui@huawei.com, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [RFC PATCH 2/6] machine: Perform zero-check for the computed value of sockets
Date: Mon, 12 Jul 2021 16:30:02 +0100	[thread overview]
Message-ID: <YOxf+sxzUSJdbY+j@redhat.com> (raw)
In-Reply-To: <20210712150048.mstqbseixgdxakkf@gator>

On Mon, Jul 12, 2021 at 05:00:48PM +0200, Andrew Jones wrote:
> On Fri, Jul 02, 2021 at 06:07:35PM +0800, Yanan Wang wrote:
> > We currently perform zero-check (default the value to 1 if zeroed)
> > for the computed values of cores/threads, to make sure they are at
> > least 1. For consistency, we probably should also default sockets
> > to 1 if the computed value is zero. Note that this won't affect
> > any existing working cmdlines but will improve the error reporting
> > of the invalid ones such as "-smp 8,maxcpus=9,cores=10,threads=1".
> 
> How does this help error checking? If the user input values that compute a
> fractional (rounded down to zero with integer division) value, then we'll
> catch that with the sockets*cores*threads == maxcpus test now, but we may
> not catch that after this patch.

Since we're having alot of debates about what should be valid scenarios
vs invalid scenarios, I think this points towards introducing a tests
for the smp_parse function, that enumerates both the correct and
incorrect scenarios based on the current implementation.

This series should then update the test cases for scenarios that we
think are currently wrongly handled.

> 
> Thanks,
> drew
> 
> > 
> > Signed-off-by: Yanan Wang <wangyanan55@huawei.com>
> > ---
> >  hw/core/machine.c | 1 +
> >  hw/i386/pc.c      | 1 +
> >  2 files changed, 2 insertions(+)
> > 
> > diff --git a/hw/core/machine.c b/hw/core/machine.c
> > index f17bbe3275..1e194677cd 100644
> > --- a/hw/core/machine.c
> > +++ b/hw/core/machine.c
> > @@ -761,6 +761,7 @@ static void smp_parse(MachineState *ms, SMPConfiguration *config, Error **errp)
> >          } else {
> >              maxcpus = maxcpus > 0 ? maxcpus : cpus;
> >              sockets = maxcpus / (cores * threads);
> > +            sockets = sockets > 0 ? sockets : 1;
> >          }
> >      } else if (cores == 0) {
> >          threads = threads > 0 ? threads : 1;
> > diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> > index a9b22fdc01..a44511c937 100644
> > --- a/hw/i386/pc.c
> > +++ b/hw/i386/pc.c
> > @@ -729,6 +729,7 @@ static void pc_smp_parse(MachineState *ms, SMPConfiguration *config, Error **err
> >          } else {
> >              maxcpus = maxcpus > 0 ? maxcpus : cpus;
> >              sockets = maxcpus / (dies * cores * threads);
> > +            sockets = sockets > 0 ? sockets : 1;
> >          }
> >      } else if (cores == 0) {
> >          threads = threads > 0 ? threads : 1;
> > -- 
> > 2.19.1
> > 
> 

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 :|



  reply	other threads:[~2021-07-12 15:34 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-02 10:07 [RFC PATCH 0/6] machine: smp parsing fixes and improvement Yanan Wang
2021-07-02 10:07 ` [RFC PATCH 1/6] machine: Set the value of maxcpus to match cpus if specified as zero Yanan Wang
2021-07-12 14:57   ` Andrew Jones
2021-07-12 15:27     ` Daniel P. Berrangé
2021-07-02 10:07 ` [RFC PATCH 2/6] machine: Perform zero-check for the computed value of sockets Yanan Wang
2021-07-12 15:00   ` Andrew Jones
2021-07-12 15:30     ` Daniel P. Berrangé [this message]
2021-07-13  6:56       ` wangyanan (Y)
2021-07-02 10:07 ` [RFC PATCH 3/6] pc/machine: Perform zero-check for the value of -smp dies Yanan Wang
2021-07-12 15:04   ` Andrew Jones
2021-07-12 15:05     ` Andrew Jones
2021-07-12 15:27       ` Andrew Jones
2021-07-13  6:46         ` wangyanan (Y)
2021-07-02 10:07 ` [RFC PATCH 4/6] machine: Uniformly use maxcpus to calculate the missing values Yanan Wang
2021-07-12 15:25   ` Andrew Jones
2021-07-13  7:25     ` wangyanan (Y)
2021-07-13  7:49   ` wangyanan (Y)
2021-07-02 10:07 ` [RFC PATCH 5/6] pc/machine: Disallow any configuration of dies for non-PC machines Yanan Wang
2021-07-02 10:18   ` Daniel P. Berrangé
2021-07-05  9:03     ` wangyanan (Y)
2021-07-02 10:07 ` [RFC PATCH 6/6] machine: Tweak the order of topology members in struct CpuTopology Yanan Wang
2021-07-12 15:29   ` Andrew Jones
2021-07-12 19:46   ` Pankaj Gupta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YOxf+sxzUSJdbY+j@redhat.com \
    --to=berrange@redhat.com \
    --cc=drjones@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=wanghaibin.wang@huawei.com \
    --cc=wangyanan55@huawei.com \
    --cc=yuzenghui@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).