[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 1/4] xl: Add support for ignore_msrs option


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Thu, 18 Feb 2021 16:52:29 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KFSM7SXcOrlix1cTLQ7haTv07XVezgiuCtOfOD8r7Yc=; b=oJ7Eb4Rp3CVjDkeovP+FAvXJiO5jF+WfdMOOrnHwXvfuewS7V8tTfuQdGU59vIqLn5vymCDWrZzjhTmdKXU7ryp0nf4Bj5sTyOCmNdVvpjLCl1MlRWk2sueKzJ/t/H+xThRPJEVRB7AzB2i3sXsI1OqTi67PWEcLfevSMJ3YOVQc+pnJSbiUhtVB6HVdKRlldfcHlEPBbzH16DX4/Z2mqsMyyv4OzH1c6zxsz4FBo41J6mCuKcSSTtc0T6j85IMZgqJ58t0qbcUukLB6FgCEY33NEfDgXDLrYyVDyb3HeNndEv6MAcNcc3E47uo0pUILkzclVhvBJVGmA7uUL4ywEg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=COKgsJgTBQTP2lcSwsWRb/1sy20DRLCpUrh5Wvp8r0ADa5esiu6EnKwqQsMTkUjsFtDNkMEK4cxKakbMD7YyZfqw9FLpSKczQLTlPd/Hr8NK4fYm34HSs6OldAJQbahNtguZcqizUbpm9/p1gJLyvd4qpEpMWiWaiLuiLKuAscwhehsGvpJGI9AR+Hchb5TVg3Skkp+Npi/89mpYORCIx8XE8uyCj4v7D+E6iDbC+VpHWUVMgR4Eqkp+fXvIhUOkE4T/zTOGqykh1HpJSG4r42sNeNC0cD2BEJbxmQuwm1k/8aEHWlX8ELmEOArUQax0zEkFTy8ifBT6qjjBbEFBhA==
  • Authentication-results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: <xen-devel@xxxxxxxxxxxxxxxxxxxx>, <iwj@xxxxxxxxxxxxxx>, <wl@xxxxxxx>, <anthony.perard@xxxxxxxxxx>, <andrew.cooper3@xxxxxxxxxx>, <jun.nakajima@xxxxxxxxx>, <kevin.tian@xxxxxxxxx>, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
  • Delivery-date: Thu, 18 Feb 2021 15:52:46 +0000
  • Ironport-sdr: rKXZRHjwaaIRhoggsqCHTbfcZmRVABR7nLazA2LEssiCakesJYU5T6OTgPjv2W5oKOcGol/IGh rMdysEnVrjNbEXqaZp9rsOSJiDih+HxK/EjQkwKDHcGWgqf18V1x9eJ9naZ2Bc13e2YhvBFLKC aEGGkhvwL/CM9Tc7RjjNN3/7VDi8ha6pyidaxBKoJtx7vIl/eCX1V+uxvZgYI7e3x0t0jjmqcD TO5tztHSN683CYcKsyQEGKLd6P4w1hLz9VTHBhoR9RuLCQspRXSMvT3WYp6Me/Gx32t+HA3iFN Lr4=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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@xxxxxxxxxx>
> >> ---
> >>  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.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.