From: Eduardo Habkost <ehabkost@redhat.com>
To: Borislav Petkov <bp@alien8.de>
Cc: "Andreas Färber" <afaerber@suse.de>, KVM <kvm@vger.kernel.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Richard Henderson" <rth@twiddle.net>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
"Huang Ying" <ying.huang@intel.com>
Subject: Re: [PATCH] target-i386: Do not set MCG_SER_P by default
Date: Mon, 23 Nov 2015 11:22:37 -0200 [thread overview]
Message-ID: <20151123132237.GM23717@thinpad.lan.raisama.net> (raw)
In-Reply-To: <20151121010925.GB3994@pd.tnic>
On Sat, Nov 21, 2015 at 02:09:25AM +0100, Borislav Petkov wrote:
> On Sat, Nov 21, 2015 at 12:11:35AM +0100, Andreas Färber wrote:
> > Hi,
> >
> > CC'ing qemu-devel.
>
> Ah, thanks.
>
> > Am 21.11.2015 um 00:01 schrieb Borislav Petkov:
> > > From: Borislav Petkov <bp@suse.de>
> > >
> > > Software Error Recovery, i.e. SER, is purely an Intel feature and it
> > > shouldn't be set by default. Enable it only on Intel.
What happens when SER is enabled on an AMD CPU? If it really
should't be enabled, why is KVM returning it on
KVM_X86_GET_MCE_CAP_SUPPORTED?
> >
> > Is this new in 2.5? Otherwise we would probably need compatibility code
> > in pc*.[ch] for incoming live migration from older versions.
>
> It looks it is really old, AFAIK from 2010:
>
> c0532a76b407 ("MCE: Relay UCR MCE to guest")
>
> You'd need to be more verbose about pc*.[ch]. An example perhaps...?
If you change something that's guest-visible and not part of the
migration stream, you need to keep the old behavior on older
machine-types (e.g. pc-i440fx-2.4), or the CPU will change under
the guest's feet when migrating to another host.
For examples, see the recent commits to include/hw/i386/pc.h.
They are all about keeping compatibility when CPUID bits are
changed:
33b5e8c0 target-i386: Disable rdtscp on Opteron_G* CPU models
6aa91e4a target-i386: Remove POPCNT from qemu64 and qemu32 CPU models
71195672 target-i386: Remove ABM from qemu64 CPU model
0909ad24 target-i386: Remove SSE4a from qemu64 CPU model
In the case of this code, it looks like it's already broken
because the resulting mcg_cap depends on host kernel capabilities
(the ones reported by kvm_get_mce_cap_supported()), and the data
initialized by target-i386/cpu.c:mce_init() is silently
overwritten by kvm_arch_init_vcpu(). So we would need to fix that
before implementing a proper compatibility mechanism for
mcg_cap.
--
Eduardo
next prev parent reply other threads:[~2015-11-23 13:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-20 23:01 [PATCH] target-i386: Do not set MCG_SER_P by default Borislav Petkov
2015-11-20 23:11 ` Andreas Färber
2015-11-21 1:09 ` Borislav Petkov
2015-11-23 13:22 ` Eduardo Habkost [this message]
2015-11-23 14:47 ` Paolo Bonzini
2015-11-23 15:03 ` Borislav Petkov
2015-11-23 15:11 ` MCG_CAP ABI breakage (was Re: [Qemu-devel] [PATCH] target-i386: Do not set MCG_SER_P by default) Eduardo Habkost
2015-11-23 16:43 ` Borislav Petkov
2015-11-23 19:42 ` Eduardo Habkost
2015-11-23 20:46 ` Borislav Petkov
2015-11-24 16:36 ` Eduardo Habkost
2015-11-24 18:44 ` 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=20151123132237.GM23717@thinpad.lan.raisama.net \
--to=ehabkost@redhat.com \
--cc=afaerber@suse.de \
--cc=bp@alien8.de \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=ying.huang@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox