All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/5] VMX MSRs policy for Nested Virt: part 1
@ 2018-02-28 16:09 Sergey Dyasli
  2018-02-28 16:09 ` [PATCH v5 1/5] x86/msr: add VMX MSRs definitions and populate Raw domain policy Sergey Dyasli
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Sergey Dyasli @ 2018-02-28 16:09 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Cooper, Kevin Tian, Jan Beulich, Jun Nakajima,
	Sergey Dyasli

The end goal of having VMX MSRs policy is to be able to manage
L1 VMX features. This patch series is the first part of this work.
There is no functional change to what L1 sees in VMX MSRs at this
point. But each domain will have a policy object which allows to
sensibly query what VMX features the domain has. This will unblock
some other nested virtualization work items.

Currently, when nested virt is enabled, the set of L1 VMX features
is fixed and calculated by nvmx_msr_read_intercept() as an intersection
between the full set of Xen's supported L1 VMX features, the set of
actual H/W features and, for MSR_IA32_VMX_EPT_VPID_CAP, the set of
features that Xen uses.

The above makes L1 VMX feature set inconsistent between different H/W
and there is no ability to control what features are available to L1.
The overall set of issues has much in common with CPUID policy.

Part 1 adds VMX MSRs into struct msr_domain_policy and initializes them
during domain creation based on CPUID policy. In the future it should be
possible to independently configure values of VMX MSRs for each domain.

v4 --> v5:
- First patch "x86/msr: add Raw and Host domain policies" was upstreamed
  separately
- Combined the next 2 patches into 1

Sergey Dyasli (5):
  x86/msr: add VMX MSRs definitions and populate Raw domain policy
  x86/msr: add VMX MSRs into HVM_max domain policy
  x86/cpuid: update signature of hvm_cr4_guest_valid_bits()
  x86/msr: update domain policy on CPUID policy changes
  x86/msr: handle VMX MSRs with guest_rd/wrmsr()

 xen/arch/x86/domctl.c              |   1 +
 xen/arch/x86/hvm/domain.c          |   3 +-
 xen/arch/x86/hvm/hvm.c             |   7 +-
 xen/arch/x86/hvm/svm/svmdebug.c    |   4 +-
 xen/arch/x86/hvm/vmx/vmx.c         |   8 +-
 xen/arch/x86/hvm/vmx/vvmx.c        | 178 --------------------
 xen/arch/x86/msr.c                 | 322 +++++++++++++++++++++++++++++++++++
 xen/include/asm-x86/hvm/hvm.h      |   2 +-
 xen/include/asm-x86/hvm/vmx/vvmx.h |   2 -
 xen/include/asm-x86/msr.h          | 333 +++++++++++++++++++++++++++++++++++++
 xen/include/asm-x86/x86-defns.h    |  54 ++++++
 11 files changed, 719 insertions(+), 195 deletions(-)

-- 
2.14.1


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2018-03-22 10:22 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-28 16:09 [PATCH v5 0/5] VMX MSRs policy for Nested Virt: part 1 Sergey Dyasli
2018-02-28 16:09 ` [PATCH v5 1/5] x86/msr: add VMX MSRs definitions and populate Raw domain policy Sergey Dyasli
2018-03-21 19:52   ` Andrew Cooper
2018-03-22  9:12     ` Jan Beulich
2018-03-22  9:39     ` Sergey Dyasli
2018-02-28 16:09 ` [PATCH v5 2/5] x86/msr: add VMX MSRs into HVM_max " Sergey Dyasli
2018-03-21 20:46   ` Andrew Cooper
2018-03-22 10:14     ` Sergey Dyasli
2018-03-22 10:22       ` Andrew Cooper
2018-02-28 16:09 ` [PATCH v5 3/5] x86/cpuid: update signature of hvm_cr4_guest_valid_bits() Sergey Dyasli
2018-03-21 20:49   ` Andrew Cooper
2018-02-28 16:09 ` [PATCH v5 4/5] x86/msr: update domain policy on CPUID policy changes Sergey Dyasli
2018-03-21 20:53   ` Andrew Cooper
2018-02-28 16:09 ` [PATCH v5 5/5] x86/msr: handle VMX MSRs with guest_rd/wrmsr() Sergey Dyasli
2018-03-21 20:28   ` Andrew Cooper

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.