From: Laurent Vivier <lvivier@redhat.com>
To: David Gibson <david@gibson.dropbear.id.au>,
groug@kaod.org, joserz@linux.vnet.ibm.com, surajjs@au1.ibm.com,
sam.bobroff@au1.ibm.com
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCHv2 1/2] spapr: Allow some cases where we can't set VSMT mode in the kernel
Date: Tue, 16 Jan 2018 11:34:52 +0100 [thread overview]
Message-ID: <ab350665-cb32-72d3-a548-0572f5275775@redhat.com> (raw)
In-Reply-To: <20180116044714.12571-2-david@gibson.dropbear.id.au>
On 16/01/2018 05:47, David Gibson wrote:
> At present if we require a vsmt mode that's not equal to the kernel's
> default, and the kernel doesn't let us change it (e.g. because it's an old
> kernel without support) then we always fail.
>
> But in fact we can cope with the kernel having a different vsmt as long as
> a) it's >= the actual number of vthreads/vcore (so that guest threads
> that are supposed to be on the same core act like it)
> b) it's a submultiple of the requested vsmt mode (so that guest threads
> spaced by the vsmt value will act like they're on different cores)
>
> Allowing this case gives us a bit more freedom to adjust the vsmt behaviour
> without breaking existing cases.
>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/ppc/spapr.c | 26 +++++++++++++++++++-------
> 1 file changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index e35214bfc3..6d3613d934 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -2314,17 +2314,29 @@ static void spapr_set_vsmt_mode(sPAPRMachineState *spapr, Error **errp)
> if (kvm_enabled() && (spapr->vsmt != kvm_smt)) {
> ret = kvmppc_set_smt_threads(spapr->vsmt);
> if (ret) {
> + /* Looks like KVM isn't able to change VSMT mode */
> error_setg(&local_err,
> "Failed to set KVM's VSMT mode to %d (errno %d)",
> spapr->vsmt, ret);
> - if (!vsmt_user) {
> - error_append_hint(&local_err, "On PPC, a VM with %d threads/"
> - "core on a host with %d threads/core requires "
> - " the use of VSMT mode %d.\n",
> - smp_threads, kvm_smt, spapr->vsmt);
> + /* We can live with that if the default one is big enough
> + * for the number of threads, and a submultiple of the one
> + * we want. In this case we'll waste some vcpu ids, but
> + * behaviour will be correct */
> + if ((kvm_smt >= smp_threads) && (spapr->vsmt % kvm_smt) == 0) {
I agree with Greg: inconsistent use of parenthesis, should be
if (kvm_smt >= smp_threads && (spapr->vsmt % kvm_smt) == 0) {
Anyway:
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Thanks,
Laurent
next prev parent reply other threads:[~2018-01-16 10:35 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-16 4:47 [Qemu-devel] [PATCHv2 0/2] Further VSMT fixes David Gibson
2018-01-16 4:47 ` [Qemu-devel] [PATCHv2 1/2] spapr: Allow some cases where we can't set VSMT mode in the kernel David Gibson
2018-01-16 9:20 ` Greg Kurz
2018-01-16 12:24 ` David Gibson
2018-01-16 14:39 ` Greg Kurz
2018-01-16 10:34 ` Laurent Vivier [this message]
2018-01-16 13:39 ` David Gibson
2018-01-16 4:47 ` [Qemu-devel] [PATCHv2 2/2] spapr: Adjust default VSMT value for better migration compatibility David Gibson
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=ab350665-cb32-72d3-a548-0572f5275775@redhat.com \
--to=lvivier@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=groug@kaod.org \
--cc=joserz@linux.vnet.ibm.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 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).