All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Borislav Petkov" <bp@alien8.de>, "Jörg Rödel" <joro@8bytes.org>,
	"Andre Przywara" <andre.przywara@arm.com>,
	"kvm ML" <kvm@vger.kernel.org>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: kvm: RDTSCP on AMD
Date: Wed, 6 Jul 2016 14:34:40 -0300	[thread overview]
Message-ID: <20160706173440.GU4131@thinpad.lan.raisama.net> (raw)
In-Reply-To: <b7e01819-f604-7e2b-fd6d-6323bd05587e@redhat.com>

On Wed, Jul 06, 2016 at 03:01:04PM +0200, Paolo Bonzini wrote:
> On 06/07/2016 14:44, Borislav Petkov wrote:
> > Hi guys,
> > 
> > how about this below to enable RDTSCP emulation on AMD? IOW, I'm staring
> > at
> > 
> >   33b5e8c03ae7 ("target-i386: Disable rdtscp on Opteron_G* CPU models")
> > 
> > in the qemu repo.
> > 
> > It seems to work here, RDTSCP in the guest gives me node and cpu as
> > vsyscall_set_cpu() in the guest kernel has set them.
> > 
> > Thoughts?
> > 
> > (Below is the simple qemu diff reenabling RDTSCP)
> > 
> > @@ -3919,6 +3935,7 @@ static int (*const svm_exit_handlers[])(struct vcpu_svm *svm) = {
> >  	[SVM_EXIT_STGI]				= stgi_interception,
> >  	[SVM_EXIT_CLGI]				= clgi_interception,
> >  	[SVM_EXIT_SKINIT]			= skinit_interception,
> > +	[SVM_EXIT_RDTSCP]			= rdtscp_interception,
> >  	[SVM_EXIT_WBINVD]                       = wbinvd_interception,
> >  	[SVM_EXIT_MONITOR]			= monitor_interception,
> >  	[SVM_EXIT_MWAIT]			= mwait_interception,
> 
> Nothing is needed in the kernel actually.  You can skip the intercept
> by running the guest with MSR_TSC_AUX set to the guest's expected value.
>  Which KVM does, except that it's botched so I need to apply the
> patch in https://lkml.org/lkml/2016/4/13/802.

Do you mean -cpu Opteron_G*,+rdtscp will be buggy on Linux v4.5?
(v4.5 reports rdtscp as supported in GET_SUPPORTED_CPUID)

Can we do something to make QEMU detect the buggy kernel before
allowing rdtscp to be enabled, or should we just tell people to
upgrade their kernel?

> 
> > ---
> > 
> > qemu diff:
> > 
> > ---
> > diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> > index 3bd3cfc3ad16..aa6d0d027d00 100644
> > --- a/target-i386/cpu.c
> > +++ b/target-i386/cpu.c
> 
> This is not enough because it's missing some backwards compatibility
> gunk (similar to the include/hw/i386/pc.h parts of 33b5e8c03ae), but
> it's enough for a proof of concept and to discuss it.
> 
> The main issue with this is that it would force a lockstep update of
> QEMU and kernel, which we try to avoid.  I'm not sure if we have a
> solution for this problem.  Eduardo?

We don't. Either we make QEMU require a newer kernel, or we need
a new CPU model. :(

-- 
Eduardo

  reply	other threads:[~2016-07-06 17:35 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-06 12:44 kvm: RDTSCP on AMD Borislav Petkov
2016-07-06 13:01 ` Paolo Bonzini
2016-07-06 17:34   ` Eduardo Habkost [this message]
2016-07-06 21:27     ` Paolo Bonzini
2018-12-10 18:13 Borislav Petkov
2018-12-10 18:37 ` Eduardo Habkost
2018-12-10 18:41   ` Borislav Petkov
2018-12-10 19:06     ` Eduardo Habkost
2018-12-10 19:42       ` Borislav Petkov
2018-12-10 20:08         ` Eduardo Habkost
2018-12-10 20:39           ` Borislav Petkov
2018-12-11 10:38           ` Daniel P. Berrangé
2018-12-11 11:55             ` Eduardo Habkost
2018-12-11 14:35               ` Daniel P. Berrangé
2018-12-11 15:23               ` Paolo Bonzini
2018-12-11 15:30                 ` Daniel P. Berrangé
2018-12-10 19:47     ` Eduardo Habkost
2018-12-10 20:16       ` Borislav Petkov

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=20160706173440.GU4131@thinpad.lan.raisama.net \
    --to=ehabkost@redhat.com \
    --cc=andre.przywara@arm.com \
    --cc=bp@alien8.de \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@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.