From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Kevin Tian <kevin.tian@intel.com>, Keir Fraser <keir@xen.org>,
Ian Campbell <Ian.Campbell@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Eddie Dong <eddie.dong@intel.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
Jun Nakajima <jun.nakajima@intel.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Eric Shelton <eshelton@pobox.com>
Subject: Re: [RFC] Overriding MSR values via xl.cfg
Date: Sat, 20 Sep 2014 16:39:02 -0400 [thread overview]
Message-ID: <20140920203902.GB5475@laptop.dumpdata.com> (raw)
In-Reply-To: <541AAA7E020000780003605B@mail.emea.novell.com>
On Thu, Sep 18, 2014 at 08:48:46AM +0100, Jan Beulich wrote:
> >>> On 17.09.14 at 19:37, <eshelton@pobox.com> wrote:
> > Sometimes, it is helpful to persuade a guest OS that it is running on
> > a particular CPU model, or that a CPU has (or does not have)
> > particular features. For example, this may ease migrating guests
> > across a heterogeneous pool of systems. Currently, via an xl.cfg file
> > you can specify specific masks or values to be returned for the CPUID
> > instruction. This is an example of the syntax being used:
> >
> > cpuid = [ '0:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
> > '1:eax=0x06b1,
> > ecx=xxxxxxxxxx0000xx00xxx0000000xx0,
> > edx=xx00000xxxxxxx0xxxxxxxxx0xxxxxx',
> > '4:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
> > '0x80000000:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0']
> >
> > MSRs provide another mechanism for a guest to collect information
> > about the system on which it is running. For much the same reasons it
> > can be useful to change CPUID values returned to a guest, it could
> > also be useful to be able to override and specify particular MSR
> > values to be returned to a guest, and for this to be done via an
> > xl.cfg. This would only affect RDMSR return values, and would not
> > affect WRMSR behavior. The syntax in xl.cfg could be simlar to what
> > is used for CPUID.
> >
> > Additionally, it seems like this capability would be useful for debug,
> > development, and testing of guest operating systems, or the Xen
> > hypervisor itself.
> >
> > I think the current implementation for the CPUID instruction, both in
> > the hypervisor and toolchain, provides a reasonable prototype for
> > implementing the above functionality. However, before I pursue this,
> > I wanted to gauge the acceptability of and interest in adding this
> > capability to Xen.
>
> While from an abstract perspective this would seem a feature that
> could indeed be useful here, I think the resemblance with CPUID
> handling is less than what you describe: The value calculation done
> in the tool stack, the physical value to merge with (in case of a
> partial bit-wise override) is ambiguous: The tool stack (running in
> Dom0) can only see whatever it gets to see, which (a) may be
> different between PV and PVH Dom0, (b) would likely differ from
> what the guest would get to see in the absence of an override,
> and (c) might be more heavily dependent on the pCPU it's being
> determined on.
The problems you describe are based more on the 'sourcing' of the
CPUID values and how choose different paths for PV and HVM (and PVH).
One starts with a nice clean plate and adds bits while the other
takes what it sees and clears the bits. It ought to really be
streamlined in one code path.
I think Eric is describing the cases for 'string' parsing of
what feature we want enabled/disabled or the hex magic. The 'string'
parsing and then uploading which MSR we want and what value it
we want to report to the guest would be quite useful.
There is no way it can be done for Xen 4.5 but this would be quite
a neat thing to get done Xen 4.6.
Eric, is that what you were thinking about?
>
> Jan
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2014-09-20 20:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-17 17:37 [RFC] Overriding MSR values via xl.cfg Eric Shelton
2014-09-18 7:48 ` Jan Beulich
2014-09-20 20:39 ` Konrad Rzeszutek Wilk [this message]
2014-09-22 9:55 ` Andrew Cooper
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=20140920203902.GB5475@laptop.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=eshelton@pobox.com \
--cc=jun.nakajima@intel.com \
--cc=keir@xen.org \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.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.