All of lore.kernel.org
 help / color / mirror / Atom feed
From: andrew.cooper3@citrix.com (Andrew Cooper)
To: cocci@systeme.lip6.fr
Subject: [Cocci] [Xen-devel] [PATCH v2 3/3] paravirt: rename paravirt_enabled to paravirt_legacy
Date: Mon, 8 Feb 2016 16:05:47 +0000	[thread overview]
Message-ID: <56B8BCDB.9040701@citrix.com> (raw)
In-Reply-To: <20160208155507.GF28980@pd.tnic>

On 08/02/16 15:55, Borislav Petkov wrote:
> On Mon, Feb 08, 2016 at 10:39:43AM -0500, Boris Ostrovsky wrote:
>> It does. Very much IIRC, the problem was not caused by an access to MSR but
>> rather some sort of address not being available somewhere.
> See below.
>
>>> - microcode application on Xen: we've had this before. The hypervisor
>>> should do that (if it doesn't do so already).
>> it does.
> Good.
>
>>> So yes, that paravirt_enabled() thing should go away. Even more so if we
>>> have CPUID leaf 0x4... reserved for hypervisors.
>> I actually think this was the original proposal until we realized we had
>> paravirt_enabled(). So we can go back to checking CPUID 0x40000000.
>>
>> We might also be able to test for (x86_hyper!=NULL) and have guests that do
>> microcode management prior to init_hypervisor() rely on hypervisors ignoring
>> MSR accesses (as they do today).
> Right, so the early loader can't do that as on 32-bit it runs even
> before paging has been enabled. So I *think* the thing with CPUID would
> be best. What does the xen hypervisor return in regs when I do CPUID(4)?
> I.e., how do I reliably detect it in the guest?
>
> I can whip up a quick patch and get rid of paravirt_enabled() while at
> it...
>

For compatibility with other virtualisation specs, Xen's cpuid leaves
shift depending on configuration.

Spec at
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/public/arch-x86/cpuid.h;h=d709340f18d089560b959835eabb7b6609542c7e;hb=HEAD#l33

Basically, they are either at 0x40000000, or 0x40000100 if viridian or
vmware compatibility has been enabled.

~Andrew

WARNING: multiple messages have this Message-ID (diff)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Borislav Petkov <bp@alien8.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: X86 ML <x86@kernel.org>, <david.e.box@intel.com>,
	Andrey Ryabinin <ryabinin.a.a@gmail.com>,
	Lv Zheng <lv.zheng@intel.com>, Jan Beulich <JBeulich@suse.com>,
	"H. Peter Anvin" <hpa@zytor.com>, <qiuxishi@huawei.com>,
	<cocci@systeme.lip6.fr>,
	Xen Devel <xen-devel@lists.xensource.com>,
	"Joerg Roedel" <joro@8bytes.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Robert Moore <robert.moore@intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	"Andrey Ryabinin" <aryabinin@virtuozzo.com>,
	Mauro Carvalho Chehab <mchehab@osg.samsung.com>,
	"Luis R. Rodriguez" <mcgrof@suse.com>,
	"Rusty Russell" <rusty@rustcorp.com.au>,
	Thomas Gleixner <tglx@linutronix.de>, <mcb30@ipxe.org>,
	Juergen Gross <jgross@suse.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Andy Lutomirski" <luto@amacapital.net>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	<long.wanglong@huawei.com>, Fengguang Wu <fengguang.wu@intel.com>
Subject: Re: [Xen-devel] [PATCH v2 3/3] paravirt: rename paravirt_enabled to paravirt_legacy
Date: Mon, 8 Feb 2016 16:05:47 +0000	[thread overview]
Message-ID: <56B8BCDB.9040701@citrix.com> (raw)
In-Reply-To: <20160208155507.GF28980@pd.tnic>

On 08/02/16 15:55, Borislav Petkov wrote:
> On Mon, Feb 08, 2016 at 10:39:43AM -0500, Boris Ostrovsky wrote:
>> It does. Very much IIRC, the problem was not caused by an access to MSR but
>> rather some sort of address not being available somewhere.
> See below.
>
>>> - microcode application on Xen: we've had this before. The hypervisor
>>> should do that (if it doesn't do so already).
>> it does.
> Good.
>
>>> So yes, that paravirt_enabled() thing should go away. Even more so if we
>>> have CPUID leaf 0x4... reserved for hypervisors.
>> I actually think this was the original proposal until we realized we had
>> paravirt_enabled(). So we can go back to checking CPUID 0x40000000.
>>
>> We might also be able to test for (x86_hyper!=NULL) and have guests that do
>> microcode management prior to init_hypervisor() rely on hypervisors ignoring
>> MSR accesses (as they do today).
> Right, so the early loader can't do that as on 32-bit it runs even
> before paging has been enabled. So I *think* the thing with CPUID would
> be best. What does the xen hypervisor return in regs when I do CPUID(4)?
> I.e., how do I reliably detect it in the guest?
>
> I can whip up a quick patch and get rid of paravirt_enabled() while at
> it...
>

For compatibility with other virtualisation specs, Xen's cpuid leaves
shift depending on configuration.

Spec at
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/public/arch-x86/cpuid.h;h=d709340f18d089560b959835eabb7b6609542c7e;hb=HEAD#l33

Basically, they are either at 0x40000000, or 0x40000100 if viridian or
vmware compatibility has been enabled.

~Andrew

WARNING: multiple messages have this Message-ID (diff)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Borislav Petkov <bp@alien8.de>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: X86 ML <x86@kernel.org>,
	david.e.box@intel.com, Andrey Ryabinin <ryabinin.a.a@gmail.com>,
	Lv Zheng <lv.zheng@intel.com>, Jan Beulich <JBeulich@suse.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	qiuxishi@huawei.com, cocci@systeme.lip6.fr,
	Xen Devel <xen-devel@lists.xensource.com>,
	Joerg Roedel <joro@8bytes.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Robert Moore <robert.moore@intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	Andrey Ryabinin <aryabinin@virtuozzo.com>,
	Mauro Carvalho Chehab <mchehab@osg.samsung.com>,
	"Luis R. Rodriguez" <mcgrof@suse.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Thomas Gleixner <tglx@linutronix.de>,
	mcb30@ipxe.org, Juergen Gross <jgross@suse.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andy Lutomirski <luto@amacapital.net>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	long.wanglong@huawei.com, Fenggu
Subject: Re: [Xen-devel] [PATCH v2 3/3] paravirt: rename paravirt_enabled to paravirt_legacy
Date: Mon, 8 Feb 2016 16:05:47 +0000	[thread overview]
Message-ID: <56B8BCDB.9040701@citrix.com> (raw)
In-Reply-To: <20160208155507.GF28980@pd.tnic>

On 08/02/16 15:55, Borislav Petkov wrote:
> On Mon, Feb 08, 2016 at 10:39:43AM -0500, Boris Ostrovsky wrote:
>> It does. Very much IIRC, the problem was not caused by an access to MSR but
>> rather some sort of address not being available somewhere.
> See below.
>
>>> - microcode application on Xen: we've had this before. The hypervisor
>>> should do that (if it doesn't do so already).
>> it does.
> Good.
>
>>> So yes, that paravirt_enabled() thing should go away. Even more so if we
>>> have CPUID leaf 0x4... reserved for hypervisors.
>> I actually think this was the original proposal until we realized we had
>> paravirt_enabled(). So we can go back to checking CPUID 0x40000000.
>>
>> We might also be able to test for (x86_hyper!=NULL) and have guests that do
>> microcode management prior to init_hypervisor() rely on hypervisors ignoring
>> MSR accesses (as they do today).
> Right, so the early loader can't do that as on 32-bit it runs even
> before paging has been enabled. So I *think* the thing with CPUID would
> be best. What does the xen hypervisor return in regs when I do CPUID(4)?
> I.e., how do I reliably detect it in the guest?
>
> I can whip up a quick patch and get rid of paravirt_enabled() while at
> it...
>

For compatibility with other virtualisation specs, Xen's cpuid leaves
shift depending on configuration.

Spec at
http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/public/arch-x86/cpuid.h;h=d709340f18d089560b959835eabb7b6609542c7e;hb=HEAD#l33

Basically, they are either at 0x40000000, or 0x40000100 if viridian or
vmware compatibility has been enabled.

~Andrew

  reply	other threads:[~2016-02-08 16:05 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-06  4:30 [PATCH v2 0/3] paravirt: rebrand paravirt_enabled as paravirt_legacy Luis R. Rodriguez
2016-02-06  4:30 ` Luis R. Rodriguez
2016-02-06  4:30 ` [PATCH v2 1/3] paravirt: use bool for paravirt_enabled() and paravirt_has_feature() Luis R. Rodriguez
2016-02-06  4:30 ` [PATCH v2 2/3] paravirt: replace direct access to pv_info.paravirt_enabled Luis R. Rodriguez
2016-02-06  4:30   ` Luis R. Rodriguez
2016-02-06  4:30 ` [Cocci] [PATCH v2 3/3] paravirt: rename paravirt_enabled to paravirt_legacy Luis R. Rodriguez
2016-02-06  4:30   ` Luis R. Rodriguez
2016-02-06  4:30   ` Luis R. Rodriguez
2016-02-06  7:11   ` [Cocci] " Andy Lutomirski
2016-02-06  7:11     ` Andy Lutomirski
2016-02-06  7:11     ` Andy Lutomirski
2016-02-06  8:59     ` [Cocci] " Luis R. Rodriguez
2016-02-06  8:59       ` Luis R. Rodriguez
2016-02-06  8:59       ` Luis R. Rodriguez
2016-02-06 20:05       ` [Cocci] " Andy Lutomirski
2016-02-06 20:05         ` Andy Lutomirski
2016-02-06 20:05         ` Andy Lutomirski
2016-02-06 22:04         ` [Cocci] " Borislav Petkov
2016-02-06 22:04           ` Borislav Petkov
2016-02-06 22:04           ` Borislav Petkov
2016-02-08 15:39           ` [Cocci] " Boris Ostrovsky
2016-02-08 15:39             ` Boris Ostrovsky
2016-02-08 15:39             ` Boris Ostrovsky
2016-02-08 15:55             ` [Cocci] " Borislav Petkov
2016-02-08 15:55               ` Borislav Petkov
2016-02-08 15:55               ` Borislav Petkov
2016-02-08 16:05               ` Andrew Cooper [this message]
2016-02-08 16:05                 ` [Xen-devel] " Andrew Cooper
2016-02-08 16:05                 ` Andrew Cooper
2016-02-08 16:12                 ` [Cocci] " Boris Ostrovsky
2016-02-08 16:12                   ` Boris Ostrovsky
2016-02-08 16:12                   ` Boris Ostrovsky
2016-02-08 16:26                   ` [Cocci] " Andrew Cooper
2016-02-08 16:26                     ` Andrew Cooper
2016-02-08 16:26                     ` Andrew Cooper
2016-02-08 16:31                     ` [Cocci] " Boris Ostrovsky
2016-02-08 16:31                       ` Boris Ostrovsky
2016-02-08 16:31                       ` Boris Ostrovsky
2016-02-08 16:32                       ` [Cocci] " Andrew Cooper
2016-02-08 16:32                         ` Andrew Cooper
2016-02-08 16:32                         ` Andrew Cooper
2016-02-08 16:35                       ` [Cocci] " Borislav Petkov
2016-02-08 16:35                         ` Borislav Petkov
2016-02-08 16:35                         ` Borislav Petkov
2016-02-08 16:38                         ` [Cocci] " Andrew Cooper
2016-02-08 16:38                           ` Andrew Cooper
2016-02-08 16:38                           ` Andrew Cooper
2016-02-08 16:45                           ` [Cocci] " Borislav Petkov
2016-02-08 16:45                             ` Borislav Petkov
2016-02-08 16:45                             ` Borislav Petkov
2016-02-08 16:52                             ` Boris Ostrovsky
2016-02-08 16:52                               ` Boris Ostrovsky
2016-02-08 20:45                               ` Boris Ostrovsky
2016-02-08 20:45                                 ` Boris Ostrovsky
2016-02-08 21:06                                 ` Borislav Petkov
2016-02-08 21:06                                   ` Borislav Petkov
2016-02-08 16:53                             ` [Cocci] " Andrew Cooper
2016-02-08 16:53                               ` Andrew Cooper
2016-02-08 16:53                               ` Andrew Cooper
2016-02-08 17:13                               ` Borislav Petkov
2016-02-08 17:13                                 ` Borislav Petkov
2016-02-09  6:22                               ` Luis R. Rodriguez
2016-02-09  6:22                                 ` Luis R. Rodriguez
2016-02-08 16:41                         ` [Cocci] " Boris Ostrovsky
2016-02-08 16:41                           ` Boris Ostrovsky
2016-02-08 16:41                           ` Boris Ostrovsky
2016-02-08 16:52                           ` [Cocci] " Borislav Petkov
2016-02-08 16:52                             ` Borislav Petkov
2016-02-08 16:52                             ` Borislav Petkov
2016-02-08 15:31         ` [Cocci] " Boris Ostrovsky
2016-02-08 15:31           ` Boris Ostrovsky
2016-02-08 15:31           ` Boris Ostrovsky
2016-02-08 15:46           ` [Cocci] " Borislav Petkov
2016-02-08 15:46             ` Borislav Petkov
2016-02-08 15:46             ` Borislav Petkov
2016-02-09  6:59             ` Luis R. Rodriguez
2016-02-09  6:59               ` Luis R. Rodriguez
2016-02-08 21:04           ` Andy Lutomirski
2016-02-08 21:04             ` Andy Lutomirski
2016-02-09  7:06           ` Luis R. Rodriguez
2016-02-09  7:06             ` Luis R. Rodriguez
2016-02-17 20:07             ` Luis R. Rodriguez
2016-02-17 20:49               ` Borislav Petkov
2016-02-17 20:49                 ` Borislav Petkov
2016-02-17 21:12                 ` Luis R. Rodriguez
2016-02-17 21:12                   ` Luis R. Rodriguez
2016-02-17 21:21                 ` Boris Ostrovsky
2016-02-17 21:21                   ` Boris Ostrovsky
2016-02-17 22:03                   ` Borislav Petkov
2016-02-17 22:03                     ` Borislav Petkov
2016-02-17 22:18                     ` Andy Lutomirski
2016-02-17 22:18                       ` Andy Lutomirski
2016-02-17 22:39                       ` Boris Ostrovsky
2016-02-17 22:39                         ` Boris Ostrovsky
2016-02-17 23:39                         ` Borislav Petkov
2016-02-17 23:39                           ` Borislav Petkov
2016-02-17 22:19                     ` Boris Ostrovsky
2016-02-17 22:19                       ` Boris Ostrovsky
2016-02-17 22:35                     ` Luis R. Rodriguez
2016-02-17 22:35                       ` Luis R. Rodriguez
2016-02-09  6:41         ` Luis R. Rodriguez
2016-02-09  6:41           ` Luis R. Rodriguez
2016-02-08 21:49       ` Boris Ostrovsky
2016-02-08 21:49         ` Boris Ostrovsky

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=56B8BCDB.9040701@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=cocci@systeme.lip6.fr \
    /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.