From: David Gibson <david@gibson.dropbear.id.au>
To: Greg Kurz <groug@kaod.org>
Cc: joserz@linux.vnet.ibm.com, surajjs@au1.ibm.com,
sam.bobroff@au1.ibm.com, lvivier@redhat.com, qemu-ppc@nongnu.org,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/2] spapr: Adjust default VSMT value for better migration compatibility
Date: Tue, 16 Jan 2018 15:42:58 +1100 [thread overview]
Message-ID: <20180116044258.GB30352@umbus.fritz.box> (raw)
In-Reply-To: <20180115104847.1cf7e666@bahia.lan>
[-- Attachment #1: Type: text/plain, Size: 3551 bytes --]
On Mon, Jan 15, 2018 at 10:48:47AM +0100, Greg Kurz wrote:
> On Mon, 15 Jan 2018 18:27:15 +1100
> David Gibson <david@gibson.dropbear.id.au> wrote:
>
> > fa98fbfc "PC: KVM: Support machine option to set VSMT mode" introduced the
> > "vsmt" parameter for the pseries machine type, which controls the spacing
> > of the vcpu ids of thread 0 for each virtual core. This was done to bring
> > some consistency and stability to how that was done, while still allowing
> > backwards compatibility for migration and otherwise.
> >
> > The default value we used for vsmt was set to the max of the host's
> > advertised default number of threads and the number of vthreads per vcore
> > in the guest. This was done to continue running without extra parameters
> > on older KVM versions which don't allow the VSMT value to be changed.
> >
> > Unfortunately, even that smaller than before leakage of host configuration
> > into guest visible configuration still breaks things. Specifically a guest
> > with 4 (or less) vthread/vcore will get a different vsmt value when
> > running on a POWER8 (vsmt==8) and POWER9 (vsmt==4) host. That means the
> > vcpu ids don't line up so you can't migrate between them, though you should
> > be able to.
> >
> > Long term we really want to make vsmt == smp_threads for sufficiently
> > new machine types. However, that means that qemu will then require a
> > sufficiently recent KVM (one which supports changing VSMT) - that's still
> > not widely enough deployed to be really comfortable to do.
> >
> > In the meantime we some default that will work as often as possible.
>
> s/we some/we need some/ ?
Corrected.
> > This patch changes that default to 8 in all circumstances. This does
> > change guest visible behaviour (including for existing machine versions)
> > for many cases - just not the most common/important case.
> >
> > Following is case by case justification for why this is still the least
> > worst option. Note that any of the old behaviours can still be duplicated
> > after this patch, it's just that it requires manual intervention by
> > setting the vsmt property on the command line.
> >
>
> IIUC this unconditionally breaks existing setups that rely on static
> Micro-Threading on a POWER8 host (eg, subcores-per-core=2 on the host
> and smp_threads=4). I have no evidence this is a widely used setup,
> but FWIW it is documented in some IBM RedBooks:
Well.. it will break migration between old and new qemu on the
microthreaded setup, but fix it between new qemu on microthreaded
setup and new qemu on non-microthreaded setup (old qemu on
microthreaded to old qemu on non-microthreaded was already broken for
the same reasons as p8<->p9). It's not really obvious to me which is
preferable.
> "Performance Optimization and Tuning Techniques for IBM Power Systems
> Processors Including IBM POWER8"
>
> http://www.redbooks.ibm.com/abstracts/sg248171.html?Open
>
> "IBM PowerKVM: Configuration and Use"
>
> http://www.redbooks.ibm.com/abstracts/sg248231.html?Open
>
> Maybe the new behaviour could be added for new machine types only ?
I'd really prefer not to. It makes some existing cases work, but
breaks some other cases. Given that the old behaviour is inherently
wrong, I'm more inclined to change it.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2018-01-16 4:47 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-15 7:27 [Qemu-devel] [PATCH 0/2] Further VSMT fixes David Gibson
2018-01-15 7:27 ` [Qemu-devel] [PATCH 1/2] target/ppc: Clarify compat mode max_threads value David Gibson
2018-01-15 7:52 ` Laurent Vivier
2018-01-15 8:45 ` Greg Kurz
2018-01-15 10:40 ` joserz
2018-01-15 7:27 ` [Qemu-devel] [PATCH 2/2] spapr: Adjust default VSMT value for better migration compatibility David Gibson
2018-01-15 7:53 ` Laurent Vivier
2018-01-15 9:48 ` Greg Kurz
2018-01-16 4:42 ` David Gibson [this message]
2018-01-15 10:38 ` joserz
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=20180116044258.GB30352@umbus.fritz.box \
--to=david@gibson.dropbear.id.au \
--cc=groug@kaod.org \
--cc=joserz@linux.vnet.ibm.com \
--cc=lvivier@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=sam.bobroff@au1.ibm.com \
--cc=surajjs@au1.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.