From: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
To: Greg Kurz <groug@kaod.org>
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [Qemu-ppc] [QEMU-PPC] [PATCH V2 3/3] ppc/spapr-caps: For pseries-2.12 change spapr-cap defaults
Date: Thu, 15 Feb 2018 09:31:27 +1100 [thread overview]
Message-ID: <1518647487.2430.1.camel@gmail.com> (raw)
In-Reply-To: <20180214152039.24ca0cf2@bahia.lan>
On Wed, 2018-02-14 at 15:20 +0100, Greg Kurz wrote:
> On Wed, 14 Feb 2018 17:51:35 +1100
> Suraj Jitindar Singh <sjitindarsingh@gmail.com> wrote:
>
> > For the pseries-2.12 machine type, make the spapr-caps
> > SPAPR_CAP_CFPC
> > and SPAPR_CAP_SBBC default to workaround. Thus if the host is
> > capable
> > the guest will be able to take advantage of these workarounds by
> > default.
> > Otherwise if the host doesn't have these capabilities qemu will
> > fail to
> > start and they will have to be explicitly disabled on the command
> > line
> > with:
> > -machine pseries,cap-cfpc=broken,cap-sbbc=broken
> >
> > Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
> > ---
> > hw/ppc/spapr.c | 11 ++++++++++-
> > hw/ppc/spapr_caps.c | 10 ++++++++++
> > include/hw/compat.h | 2 ++
> > 3 files changed, 22 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> > index 969db6cde2..e2ebb76242 100644
> > --- a/hw/ppc/spapr.c
> > +++ b/hw/ppc/spapr.c
> > @@ -3941,13 +3941,20 @@ static const TypeInfo spapr_machine_info =
> > {
> > /*
> > * pseries-2.12
> > */
> > +#define
> > SPAPR_COMPAT_2_12 \
> > + HW_COMPAT_2_12
> > +
> > static void spapr_machine_2_12_instance_options(MachineState
> > *machine)
> > {
> > }
> >
> > static void spapr_machine_2_12_class_options(MachineClass *mc)
> > {
> > - /* Defaults for the latest behaviour inherited from the base
> > class */
> > + sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> > +
> > + smc->default_caps.caps[SPAPR_CAP_CFPC] = SPAPR_CAP_WORKAROUND;
> > + smc->default_caps.caps[SPAPR_CAP_SBBC] = SPAPR_CAP_WORKAROUND;
>
> As written in the comment, the default for the latest machine type
> should
> be set at the base class level, in spapr_machine_class_init()... not
> sure
> to understand why you set it here...
Ah yes, my bad.
>
> > + SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_12);
>
> And so, you shouldn't need to setup 2.12 compat mode before 2.12 was
> even
> released :)
Fair enough :)
>
> > }
> >
> > DEFINE_SPAPR_MACHINE(2_12, "2.12", true);
> > @@ -3969,6 +3976,8 @@ static void
> > spapr_machine_2_11_class_options(MachineClass *mc)
> >
> > spapr_machine_2_12_class_options(mc);
> > smc->default_caps.caps[SPAPR_CAP_HTM] = SPAPR_CAP_ON;
> > + smc->default_caps.caps[SPAPR_CAP_CFPC] = SPAPR_CAP_BROKEN;
> > + smc->default_caps.caps[SPAPR_CAP_SBBC] = SPAPR_CAP_BROKEN;
> > SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_11);
> > }
> >
> > diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
> > index 05997b0842..c25c2bca52 100644
> > --- a/hw/ppc/spapr_caps.c
> > +++ b/hw/ppc/spapr_caps.c
> > @@ -281,11 +281,21 @@ static sPAPRCapabilities
> > default_caps_with_cpu(sPAPRMachineState *spapr,
> >
> > caps = smc->default_caps;
> >
> > + if (!ppc_check_compat(cpu, CPU_POWERPC_LOGICAL_3_00,
> > + 0, spapr->max_compat_pvr)) {
> > + caps.caps[SPAPR_CAP_CFPC] = SPAPR_CAP_BROKEN;
> > + }
> > +
> > if (!ppc_check_compat(cpu, CPU_POWERPC_LOGICAL_2_07,
> > 0, spapr->max_compat_pvr)) {
> > caps.caps[SPAPR_CAP_HTM] = SPAPR_CAP_OFF;
> > }
> >
> > + if (!ppc_check_compat(cpu, CPU_POWERPC_LOGICAL_2_06_PLUS,
> > + 0, spapr->max_compat_pvr)) {
> > + caps.caps[SPAPR_CAP_SBBC] = SPAPR_CAP_BROKEN;
> > + }
> > +
> > if (!ppc_check_compat(cpu, CPU_POWERPC_LOGICAL_2_06,
> > 0, spapr->max_compat_pvr)) {
> > caps.caps[SPAPR_CAP_VSX] = SPAPR_CAP_OFF;
> > diff --git a/include/hw/compat.h b/include/hw/compat.h
> > index 7f31850dfa..13238239da 100644
> > --- a/include/hw/compat.h
> > +++ b/include/hw/compat.h
> > @@ -1,6 +1,8 @@
> > #ifndef HW_COMPAT_H
> > #define HW_COMPAT_H
> >
> > +#define HW_COMPAT_2_12
> > +
> > #define HW_COMPAT_2_11 \
> > {\
> > .driver = "hpet",\
>
>
next prev parent reply other threads:[~2018-02-14 22:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-14 6:51 [Qemu-devel] [QEMU-PPC] [PATCH V2 1/3] ppc/spapr-caps: Change migration macro to take full spapr-cap name Suraj Jitindar Singh
2018-02-14 6:51 ` [Qemu-devel] [QEMU-PPC] [PATCH V2 2/3] ppc/spapr-caps: Convert spapr-cap-ibs to be a boolean Suraj Jitindar Singh
2018-02-14 13:58 ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2018-02-14 6:51 ` [Qemu-devel] [QEMU-PPC] [PATCH V2 3/3] ppc/spapr-caps: For pseries-2.12 change spapr-cap defaults Suraj Jitindar Singh
2018-02-14 14:20 ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2018-02-14 22:31 ` Suraj Jitindar Singh [this message]
2018-02-14 13:44 ` [Qemu-devel] [Qemu-ppc] [QEMU-PPC] [PATCH V2 1/3] ppc/spapr-caps: Change migration macro to take full spapr-cap name Greg Kurz
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=1518647487.2430.1.camel@gmail.com \
--to=sjitindarsingh@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=groug@kaod.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/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.