All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: <xen-devel@lists.xenproject.org>, <iwj@xenproject.org>,
	<wl@xen.org>, <anthony.perard@citrix.com>,
	<andrew.cooper3@citrix.com>, <jun.nakajima@intel.com>,
	<kevin.tian@intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: [PATCH v2 1/4] xl: Add support for ignore_msrs option
Date: Thu, 18 Feb 2021 16:52:29 +0100	[thread overview]
Message-ID: <YC6NPcym62a0Nu0M@Air-de-Roger> (raw)
In-Reply-To: <a78a4b94-47cc-64c0-1b1f-8429665822b2@suse.com>

On Thu, Feb 18, 2021 at 12:54:13PM +0100, Jan Beulich wrote:
> On 18.02.2021 11:42, Roger Pau Monné wrote:
> > On Wed, Jan 20, 2021 at 05:49:09PM -0500, Boris Ostrovsky wrote:
> >> This option allows guest administrator specify what should happen when
> >> guest accesses an MSR which is not explicitly emulated by the hypervisor.
> >>
> >> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> >> ---
> >>  docs/man/xl.cfg.5.pod.in         | 20 +++++++++++++++++++-
> >>  tools/libs/light/libxl_types.idl |  7 +++++++
> >>  tools/xl/xl_parse.c              |  7 +++++++
> >>  3 files changed, 33 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> >> index c8e017f950de..96ce97c42cab 100644
> >> --- a/docs/man/xl.cfg.5.pod.in
> >> +++ b/docs/man/xl.cfg.5.pod.in
> >> @@ -2044,7 +2044,25 @@ Do not provide a VM generation ID.
> >>  See also "Virtual Machine Generation ID" by Microsoft:
> >>  L<https://docs.microsoft.com/en-us/windows/win32/hyperv_v2/virtual-machine-generation-identifier>
> >>  
> >> -=back 
> >> +=over
> >> +
> >> +=item B<ignore_msrs="STRING">
> >> +
> >> +Determine hypervisor behavior on accesses to MSRs that are not emulated by the hypervisor.
> >> +
> >> +=over 4
> >> +
> >> +=item B<never>
> >> +
> >> +Issue a warning to the log and #GP to the guest. This is default.
> >> +
> >> +=item B<silent>
> >> +
> >> +MSR reads return 0, MSR writes are ignored. No warnings to the log.
> >> +
> >> +=item B<verbose>
> >> +
> >> +Similar to B<silent> but a warning is written.
> > 
> > Would it make sense to allow for this option to be more fine-grained
> > in the future?
> 
> From an abstract perspective - maybe. But remember that this information
> will need to be migrated with the guest. It would seem to me that
> Boris'es approach is easier migration-wise.

I'm not an expert on migration, but I seem to recall there's already a
libxl blob that gets migrated that contains the domain configuration,
so having the MSR configuration there seems like a sensible thing to
do.

> > Not that you need to implement the full thing now, but maybe we could
> > have something like:
> > 
> > "
> > =item B<ignore_msrs=[ "MSR_RANGE, "MSR_RANGE", ..]>
> > 
> > Specify a list of MSR ranges that will be ignored by the hypervisor:
> > reads will return zeros and writes will be discarded without raising a
> > #GP.
> > 
> > Each MSR_RANGE is given in hexadecimal format and may be a range, e.g.
> > c00102f0-c00102f1 (inclusive), or a single MSR, e.g. c00102f1.
> > "
> > 
> > Then you can print the messages in the hypervisor using a guest log
> > level and modify it on demand in order to get more verbose output?
> 
> "Modify on demand"? Irrespective of what you mean with this, ...
> 
> > I don't think selecting whether the messages are printed or not from
> > xl is that helpful as the same could be achieved using guest_loglvl.
> 
> ... controlling this via guest_loglvl would affect various other
> log messages' visibility.

Right, but do we really need this level of per-guest log control,
implemented in this way exclusively for MSRs?

We don't have a way for other parts of the code to have such
fine-grained control about what messages should be printed, and I
don't think MSR should be an exception. I assume this would be used to
detect which MSRs a guest is trying to access, and I would be fine
just using guest_loglvl to that end, the more that it can be modified
at run time now.

In any case I'm more worried about having a big switch to ignore all
unhandled MSRs rather than whether accesses should print a message or
not. Worse come to worse we could always add a new option afterwards
to selectively ignore MSR access, but that would be confusing for
users IMO.

Thanks, Roger.


  reply	other threads:[~2021-02-18 15:52 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-20 22:49 [PATCH v2 0/4] Permit fault-less access to non-emulated MSRs Boris Ostrovsky
2021-01-20 22:49 ` [PATCH v2 1/4] xl: Add support for ignore_msrs option Boris Ostrovsky
2021-01-21 14:56   ` Wei Liu
2021-01-21 22:43     ` Boris Ostrovsky
2021-01-22  9:52   ` Julien Grall
2021-01-22 18:28     ` Boris Ostrovsky
2021-01-22 18:33       ` Julien Grall
2021-01-22 18:39         ` Boris Ostrovsky
2021-01-22 20:42           ` Julien Grall
2021-02-18 10:42   ` Roger Pau Monné
2021-02-18 11:54     ` Jan Beulich
2021-02-18 15:52       ` Roger Pau Monné [this message]
2021-02-18 15:57         ` Jan Beulich
2021-02-19 14:50           ` Boris Ostrovsky
2021-02-22 10:24             ` Roger Pau Monné
2021-02-22 10:33               ` Jan Beulich
2021-01-20 22:49 ` [PATCH v2 2/4] x86: Introduce MSR_UNHANDLED Boris Ostrovsky
2021-01-22 11:51   ` Jan Beulich
2021-01-22 18:56     ` Boris Ostrovsky
2021-02-02 17:01     ` Boris Ostrovsky
2021-02-18 10:51   ` Roger Pau Monné
2021-02-19 14:56     ` Boris Ostrovsky
2021-02-22 11:08       ` Roger Pau Monné
2021-02-22 21:19         ` Boris Ostrovsky
2021-02-23  7:57           ` Jan Beulich
2021-02-23  9:34             ` Roger Pau Monné
2021-02-23 10:15               ` Jan Beulich
2021-02-23 12:17                 ` Roger Pau Monné
2021-02-23 13:23                   ` Jan Beulich
2021-02-23 15:39                     ` Boris Ostrovsky
2021-02-23 16:10                       ` Jan Beulich
2021-02-23 18:00                         ` Roger Pau Monné
2021-02-23 16:11                       ` Roger Pau Monné
2021-02-23 16:40                         ` Boris Ostrovsky
2021-02-23 18:02                           ` Roger Pau Monné
2021-02-23 18:45                             ` Boris Ostrovsky
2021-01-20 22:49 ` [PATCH v2 3/4] x86: Allow non-faulting accesses to non-emulated MSRs if policy permits this Boris Ostrovsky
2021-01-22 12:51   ` Jan Beulich
2021-01-22 19:52     ` Boris Ostrovsky
2021-01-25 10:22       ` Jan Beulich
2021-01-25 18:42         ` Boris Ostrovsky
2021-01-26  9:05           ` Jan Beulich
2021-01-26 16:02             ` Boris Ostrovsky
2021-01-26 16:35               ` Jan Beulich
2021-02-18 11:24   ` Roger Pau Monné
2021-02-18 11:57     ` Jan Beulich
2021-02-18 15:53       ` Roger Pau Monné
2021-01-20 22:49 ` [PATCH v2 4/4] tools/libs: Apply MSR policy to a guest Boris Ostrovsky
2021-01-21 14:58   ` Wei Liu
2021-01-22  9:56   ` Julien Grall
2021-01-22 18:35     ` Boris Ostrovsky
2021-02-18 11:48   ` Roger Pau Monné
2021-02-19 14:57     ` 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=YC6NPcym62a0Nu0M@Air-de-Roger \
    --to=roger.pau@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=anthony.perard@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=iwj@xenproject.org \
    --cc=jbeulich@suse.com \
    --cc=jun.nakajima@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.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.