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

[PATCH WIP 00/14] AMD Nested Virt Preparation



This is my work-in-progress series for getting nested virt working
again on AMD.

The first patch is an early draft to integrate the SVM bits into the
CPUID framework.  It will be partially superseded by a series Andrew
has posted but which has not yet been checked in.

The second patch is a workaround which hides the PCID bit from the L1
when nested HVM is enabled.  Long-term, nested support for PCID will
be necessary for performance.

Most of the rest of the patches involve improving tracing: Either
fixing what's bitrotted in xenalyze, what's bitrotted specifically on
the SVM side, or what could be improved in the upstream tracing.

The last patch is a placeholder for future work, commenting a place
where behavior is wrong and another where more work needs to be done
to assure safety.

George Dunlap (14):
  x86/cpuid-policy: Add AMD SVM CPUID leaf to featureset
  x86/cpu-policy: HACK Disable PCID when nested virt is enabled
  xenalyze: Basic nested virt processing
  xenalyze: Track generic event information when not in summary mode
  xenalyze: Ignore vmexits where an HVM_HANDLER traces would be
    redundant
  xen/svm: Remove redundant HVM_HANDLER trace for EXCEPTION_AC
  xen/hvm: Don't skip MSR_READ trace record
  svm: Do NPF trace before calling hvm_hap_nested_page_fault
  x86/emulate: Don't trace cr reads during emulation
  xenalyze: Quiet warnings about VMEXIT_IOIO
  x86/trace: Add trace to xsetbv svm/vmx handler path
  xenalyze: Basic processing for XSETBV exits and handlers
  x86/svm: Add a trace for VMEXIT_VMRUN
  x86/nestedsvm: Note some places for improvement

 tools/libs/light/libxl_cpuid.c              |   1 +
 tools/misc/xen-cpuid.c                      |   1 +
 tools/xentrace/xenalyze.c                   | 133 +++++++++++++++-----
 xen/arch/x86/cpu-policy.c                   |  24 ++--
 xen/arch/x86/cpu/common.c                   |   2 +
 xen/arch/x86/hvm/emulate.c                  |   1 -
 xen/arch/x86/hvm/hvm.c                      |   4 +-
 xen/arch/x86/hvm/svm/nestedsvm.c            |  13 ++
 xen/arch/x86/hvm/svm/svm.c                  |   7 +-
 xen/include/public/arch-x86/cpufeatureset.h |  16 +++
 xen/include/public/trace.h                  |   1 +
 xen/include/xen/lib/x86/cpu-policy.h        |  10 +-
 xen/lib/x86/cpuid.c                         |   4 +-
 13 files changed, 167 insertions(+), 50 deletions(-)

-- 
2.25.1




 


Rackspace

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