From: Greg Kurz <groug@kaod.org>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: Daniel Henrique Barboza <danielhb413@gmail.com>,
qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [PATCH 1/1] spapr_caps.c: disable KVM specific caps when running with TCG
Date: Wed, 20 Jan 2021 12:10:22 +0100 [thread overview]
Message-ID: <20210120121022.682e96c8@bahia.lan> (raw)
In-Reply-To: <20210120002445.GA5174@yekko.fritz.box>
[-- Attachment #1: Type: text/plain, Size: 4040 bytes --]
On Wed, 20 Jan 2021 11:24:45 +1100
David Gibson <david@gibson.dropbear.id.au> wrote:
> On Tue, Jan 19, 2021 at 05:58:24PM -0300, Daniel Henrique Barboza wrote:
> > Commit 006e9d361869 added warning messages for cap-cfpc, cap-ibs and
> > cap-sbbc when enabled under TCG. Commit 8ff43ee404d3 did the same thing
> > when introducing cap-ccf-assist.
> >
> > These warning messages, although benign to the machine launch, can make
> > users a bit confused. E.g:
> >
> > $ sudo ./ppc64-softmmu/qemu-system-ppc64
> > qemu-system-ppc64: warning: TCG doesn't support requested feature, cap-cfpc=workaround
> > qemu-system-ppc64: warning: TCG doesn't support requested feature, cap-sbbc=workaround
> > qemu-system-ppc64: warning: TCG doesn't support requested feature, cap-ibs=workaround
> > qemu-system-ppc64: warning: TCG doesn't support requested feature, cap-ccf-assist=on
> >
> > We're complaining about "TCG doesn't support requested feature" when the
> > user didn't request any of those caps in the command line.
> >
> > Check if we're running with TCG and change the defaults in spapr_caps_init().
> > Note that this change doesn't impact backward compatibility or migration
> > to older QEMU versions because we never activated these caps with TCG
> > in the first place.
>
> Nack. Changing those capabilities changes guest visible properties of
> the guest environment. Silently altering guest visible
> characteristics based on whether or not we're running with KVM is not
> acceptable (we did it in the past and it caused a lot of grief).
>
I definitely agree with the nack, but I also agree with the
intention behind this patch. Since we know if a capability
was requested from the command line, the warning can be
restricted to this case with something like:
--- a/hw/ppc/spapr_caps.c
+++ b/hw/ppc/spapr_caps.c
@@ -243,7 +243,7 @@ static void cap_safe_cache_apply(SpaprMachineState *spapr, >
ERRP_GUARD();
uint8_t kvm_val = kvmppc_get_cap_safe_cache();
- if (tcg_enabled() && val) {
+ if (tcg_enabled() && val && spapr->cmd_line_caps[SPAPR_CAP_CFPC]) {
/* TCG only supports broken, allow other values and print a warning */
warn_report("TCG doesn't support requested feature, cap-cfpc=%s",
cap_cfpc_possible.vals[val]);
A further improvement would be to only issue these warnings at
machine init instead of printing them again and again at each
reboot. This should be possible in spapr_caps_init() because
the accelerator has been set and the capabilities have been
parsed already.
> >
> > Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
> > ---
> > hw/ppc/spapr_caps.c | 15 +++++++++++++++
> > 1 file changed, 15 insertions(+)
> >
> > diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
> > index 9341e9782a..53eea2b11e 100644
> > --- a/hw/ppc/spapr_caps.c
> > +++ b/hw/ppc/spapr_caps.c
> > @@ -781,6 +781,21 @@ void spapr_caps_init(SpaprMachineState *spapr)
> > /* Compute the actual set of caps we should run with */
> > default_caps = default_caps_with_cpu(spapr, MACHINE(spapr)->cpu_type);
> >
> > + /*
> > + * These are KVM specific caps that TCG doesn't support, but will
> > + * throw an warning if enabled by default (see 006e9d361869 and
> > + * 8ff43ee404d3). This behavior can make the user wonder why a warning
> > + * is being shown for caps that the user didn't enable in the
> > + * command line.
> > + *
> > + * Disable them for TCG. */
> > + if (tcg_enabled()) {
> > + default_caps.caps[SPAPR_CAP_CFPC] = SPAPR_CAP_BROKEN;
> > + default_caps.caps[SPAPR_CAP_SBBC] = SPAPR_CAP_BROKEN;
> > + default_caps.caps[SPAPR_CAP_IBS] = SPAPR_CAP_BROKEN;
> > + default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_BROKEN;
> > + }
> > +
> > for (i = 0; i < SPAPR_CAP_NUM; i++) {
> > /* Store the defaults */
> > spapr->def.caps[i] = default_caps.caps[i];
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2021-01-20 11:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-19 20:58 [PATCH 1/1] spapr_caps.c: disable KVM specific caps when running with TCG Daniel Henrique Barboza
2021-01-20 0:24 ` David Gibson
2021-01-20 11:10 ` Greg Kurz [this message]
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=20210120121022.682e96c8@bahia.lan \
--to=groug@kaod.org \
--cc=danielhb413@gmail.com \
--cc=david@gibson.dropbear.id.au \
--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 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).