All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Bobroff <sam.bobroff@au1.ibm.com>
To: Thomas Huth <thuth@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org, david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH 1/1] target/ppc: Improve accuracy of guest HTM availability on P8s
Date: Thu, 30 Mar 2017 13:28:36 +1100	[thread overview]
Message-ID: <20170330022836.GA4044@tungsten.ozlabs.ibm.com> (raw)
In-Reply-To: <20170329053928.56B1FAE03B@b01ledav005.gho.pok.ibm.com>

On Wed, Mar 29, 2017 at 07:39:25AM +0200, Thomas Huth wrote:
> On 29.03.2017 07:01, Sam Bobroff wrote:
> > On Power8 hosts it is currently theoretically possible for QEMU/KVM-HV guests
> > to receive a ibm,pa-features property indicating that HTM support is available
> > when it is not.  The situation would occur if the platform firmware of
> > a Power8 host cleared the HTM bit of the ibm,pa-features property.
> 
> Out of curiosity: Is there a machine out there where this happens?

Not that I know of... just the one who's firmware I broke on purpose for
testing ;-)

> > QEMU would query KVM for the availability of HTM, which will return no
> > support, but workaround code in kvm_arch_init_vcpu() would then
> > re-enable it because KVM_HV is in use and the processor is P8.
> > 
> > This patch adjusts the workaround in kvm_arch_init_vcpu() so that it does not
> > enable HTM (in the above case) unless the host kernel indicates to the QEMU
> > process, via the auxiliary vector, that userspace can use HTM (via the HWCAP2
> > bit KVM_FEATURE2_HTM).
> > 
> > The reason to use the value from the auxiliary vector is that it is
> > set based only on what the host kernel found in the ibm,pa-features
> > HTM bit at boot time.
> > 
> > Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
> > ---
> >  target/ppc/kvm.c | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> > index 9f1f132cef..8a54709ae4 100644
> > --- a/target/ppc/kvm.c
> > +++ b/target/ppc/kvm.c
> > @@ -49,6 +49,7 @@
> >  #if defined(TARGET_PPC64)
> >  #include "hw/ppc/spapr_cpu_core.h"
> >  #endif
> > +#include "elf.h"
> >  
> >  //#define DEBUG_KVM
> >  
> > @@ -509,8 +510,11 @@ int kvm_arch_init_vcpu(CPUState *cs)
> >      case POWERPC_MMU_2_07:
> >          if (!cap_htm && !kvmppc_is_pr(cs->kvm_state)) {
> >              /* KVM-HV has transactional memory on POWER8 also without the
> > -             * KVM_CAP_PPC_HTM extension, so enable it here instead. */
> > -            cap_htm = true;
> > +             * KVM_CAP_PPC_HTM extension, so enable it here instead as
> > +             * long as it's availble to userspace on the host. */
> > +            if (qemu_getauxval(AT_HWCAP2) & PPC_FEATURE2_HAS_HTM) {
> > +                cap_htm = true;
> > +            }
> 
> That's a very good idea! ... but I think you could also merge the two
> if-statements into one to save one level of indentation.
> 
>  Thomas

  parent reply	other threads:[~2017-03-30  2:29 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-29  5:01 [Qemu-devel] [PATCH 0/1] target/ppc: Improve accuracy of guest HTM availability on P8s Sam Bobroff
2017-03-29  5:01 ` [Qemu-devel] [PATCH 1/1] " Sam Bobroff
2017-03-29  5:23   ` David Gibson
2017-03-29  5:39   ` Thomas Huth
     [not found]   ` <20170329053928.56B1FAE03B@b01ledav005.gho.pok.ibm.com>
2017-03-30  2:28     ` Sam Bobroff [this message]
2017-03-31  3:23       ` 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=20170330022836.GA4044@tungsten.ozlabs.ibm.com \
    --to=sam.bobroff@au1.ibm.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=thuth@redhat.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.