From: David Gibson <david@gibson.dropbear.id.au>
To: Greg Kurz <groug@kaod.org>
Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/3] target/ppc: filter out non-zero PCR values when using TCG
Date: Wed, 13 Jun 2018 22:05:02 +1000 [thread overview]
Message-ID: <20180613120502.GO30690@umbus.fritz.box> (raw)
In-Reply-To: <20180613101915.4cc9485b@bahia.lab.toulouse-stg.fr.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 2706 bytes --]
On Wed, Jun 13, 2018 at 10:19:15AM +0200, Greg Kurz wrote:
> On Wed, 13 Jun 2018 10:45:06 +1000
> David Gibson <david@gibson.dropbear.id.au> wrote:
>
> > On Tue, Jun 12, 2018 at 07:04:15PM +0200, Greg Kurz wrote:
> > > Bits set in the PCR disable features of the processor. TCG currently
> > > doesn't implement that, ie, we always act like if PCR is all zeros.
> > >
> > > But it is still possible for the PCR to have a non-null value. This may
> > > confuse the guest.
> > >
> > > There are three distinct cases:
> > >
> > > 1) a powernv guest doing mtspr SPR_PCR
> > >
> > > 2) reset of a pseries guest if the max-cpu-compat machine property is set
> > >
> > > 3) CAS of a pseries guest
> > >
> > > This patch adds a ppc_store_pcr() helper that ensures we cannot put
> > > a non-null value in the PCR when using TCG. This helper also has
> > > error propagation support, so that each case listed above can be
> > > handled appropriately:
> > >
> > > 1) since the powernv machine is mostly used for OpenPOWER FW devel,
> > > we just print an error and let QEMU continue execution
> > >
> > > 2) an error is printed and QEMU exits, ie, same behaviour as when
> > > KVM doesn't support the requested compat mode
> > >
> > > 3) an error is printed and QEMU reports H_HARDWARE to the guest
> > >
> > > Signed-off-by: Greg Kurz <groug@kaod.org>
> >
> > I'm not really convinced this is a good idea. Printing a (non fatal)
> > error if the guest attempts to write a non-zero value to the PCR
> > should be ok. However, you're generating a fatal error if the machine
> > tries to set the PCR in TCG mode. That could easily happen using,
> > e.g. the cap-htm flag on a TCG guest. That would take TCG from mostly
> > working, to refusing to run at all.
> >
>
> I'm confused... I don't see anything related to HTM in TCG. Also we have
> the following in cap_htm_apply():
>
> if (tcg_enabled()) {
> error_setg(errp,
> "No Transactional Memory support in TCG, try cap-htm=off");
>
> I'm probably missing something... can you enlighten me ?
Ok, so right now when cap-htm=off we don't actually enforce that, we
just don't advertise it to the guest. We probably _should_ enforce
that, and the way we'd do it is to set the appropriate bit in the
PCR. That'll do the right thing for KVM (well, once we update KVM to
actually pass on the PCR value) but would break TCG in conjunction
with your patch above.
--
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-06-13 12:05 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-12 16:27 [Qemu-devel] [PATCH 1/3] target/ppc: drop empty #if/#endif block Greg Kurz
2018-06-12 16:43 ` Philippe Mathieu-Daudé
2018-06-12 17:01 ` [Qemu-devel] [PATCH 2/3] spapr: fix leak in h_client_architecture_support() Greg Kurz
2018-06-12 20:13 ` Philippe Mathieu-Daudé
2018-06-12 23:38 ` David Gibson
2018-06-12 17:04 ` [Qemu-devel] [PATCH 3/3] target/ppc: filter out non-zero PCR values when using TCG Greg Kurz
2018-06-13 0:45 ` David Gibson
2018-06-13 8:19 ` Greg Kurz
2018-06-13 12:05 ` David Gibson [this message]
2018-06-13 14:26 ` Greg Kurz
2018-06-14 1:26 ` David Gibson
2018-06-14 19:52 ` Richard Henderson
2018-06-14 22:00 ` Greg Kurz
2018-06-15 1:45 ` David Gibson
2018-06-15 3:38 ` Richard Henderson
2018-06-15 3:40 ` David Gibson
2018-06-15 8:11 ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2018-06-12 23:38 ` [Qemu-devel] [PATCH 1/3] target/ppc: drop empty #if/#endif block 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=20180613120502.GO30690@umbus.fritz.box \
--to=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 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).