All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	kvm@vger.kernel.org
Subject: Re: linux 3.13 guest crash with -cpu host
Date: Mon, 3 Feb 2014 16:45:38 +0200	[thread overview]
Message-ID: <20140203144538.GB24528@redhat.com> (raw)
In-Reply-To: <20140203142642.GK8874@twins.programming.kicks-ass.net>

On Mon, Feb 03, 2014 at 03:26:42PM +0100, Peter Zijlstra wrote:
> On Mon, Feb 03, 2014 at 03:19:18PM +0100, Paolo Bonzini wrote:
> > Il 03/02/2014 15:12, Peter Zijlstra ha scritto:
> > >>> But why doesn't it crash on baremetal?
> > >>> Probably baremetal simply returns 0 or something.
> > >>> Let me try ..
> > >The claim "v2 and above have FEATURE_PDCM" is in fact true for real
> > >hardware.
> > >
> > >If it didn't the rdmsr() would have generated an exception and we'd have
> > >crashed just like your virtual thingy did.
> > 
> > Right, and the virt thingy has no PEBS, so there is no correct value that we
> > could return from the MSR.  That's why the CPUID bit is zero.
> 
> There's more than PEBS in there, there's also the LBR format (which you
> obviously also don't have) and the full_width_write bit, which you also
> don't have.
> 
> Returning 0 is a safe value. Seeing you don't have LBR, we don't look at
> the LBR format fields, seeing you don't have PEBS, we don't look at
> those fields either.
> 
> We don't appear to use the SMM_FREEZE bit at all, and 0 is in fact the
> right value for full_width_write, since you lack the MSRs to support
> that.
> 
> Anyway, its easy for me to make future kernels do the right PDCM test,
> probably easy to backport too (should apply with minimal trouble back a
> fair number of releases).
> 
> You can also implement the MSR to simply return 0, which is a safe
> value.


OK, I'm testing the following now:

--->
Subject: [PATCH] kvm: emulate MSR_IA32_PERF_CAPABILITIES

guests expect that this does not crash if version > 1.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 arch/x86/kvm/x86.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 5d004da..eaf5016 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2407,6 +2407,9 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
 		/* CPU multiplier */
 		data |= (((uint64_t)4ULL) << 40);
 		break;
+	case MSR_IA32_PERF_CAPABILITIES:
+		data = 0;
+		break;
 	case MSR_EFER:
 		data = vcpu->arch.efer;
 		break;
-- 
MST


      parent reply	other threads:[~2014-02-03 14:41 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-02 20:59 linux 3.13 guest crash with -cpu host Michael S. Tsirkin
2014-02-03 12:58 ` Eduardo Habkost
2014-02-03 13:29   ` Peter Zijlstra
2014-02-21 21:14     ` [tip:perf/urgent] perf/x86: Correctly use FEATURE_PDCM tip-bot for Peter Zijlstra
2014-02-03 14:06   ` linux 3.13 guest crash with -cpu host Michael S. Tsirkin
2014-02-03 14:07     ` Paolo Bonzini
2014-02-03 14:42       ` Michael S. Tsirkin
2014-02-03 14:12     ` Peter Zijlstra
2014-02-03 14:19       ` Paolo Bonzini
2014-02-03 14:26         ` Peter Zijlstra
2014-02-03 14:28           ` Peter Zijlstra
2014-02-03 15:01             ` Paolo Bonzini
2014-02-03 14:45           ` Michael S. Tsirkin [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=20140203144538.GB24528@redhat.com \
    --to=mst@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.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.