linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] x86/kvm/hyper-v: More fixes for TSC page clocksource for Hyper-V on KVM
@ 2018-02-28 13:43 Vitaly Kuznetsov
  2018-02-28 13:43 ` [PATCH 1/3] x86/kvm/hyper-v: add reenlightenment MSRs support Vitaly Kuznetsov
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Vitaly Kuznetsov @ 2018-02-28 13:43 UTC (permalink / raw)
  To: kvm
  Cc: linux-kernel, x86, Paolo Bonzini, Radim Krčmář,
	K. Y. Srinivasan, Michael Kelley (EOSG),
	Andrey Smetanin, Roman Kagan, Denis V . Lunev

Previously (see commit 72c139bacf) it was found that Hyper-V frequency
MSRs are required to make Hyper-V on KVM pass through TSC page as stable
clocksource to its guests. However, to make things work this is not
enough. Hyper-V tries to prove that TSC frequency underneath it won't
change (e.g. when it's migrated), there are two mechanisms:

1) Invariant TSC (CPUID.80000007H:EDX[8]). If Hyper-V sees this bit it will
 treat TSC as stable. We, however, don't want to pass it as it makes
 migration hard (e.g. Qemu adds a migration blocker when 'invtsc' flag is
 passed. Genuine Hyper-V running in L0 doesn't pass it either.

2) Hyper-V Reenlightenment (CPUID.40000003H:EAX[13]).

This patch series add rudimentary support for Hyper-V reenlightenment
notifications to KVM ('producer' part; we already implemented
reenlightenment 'consumer' for KVM-on Hyper-V some time ago) and fixes
bugs I found during testing. Fully fledged reenlightenment  implementation
will be added later when we learn to migrate nested workloads in KVM making
testing possible.

Qemu patches are also required, I'll post them separately.

Vitaly Kuznetsov (3):
  x86/kvm/hyper-v: add reenlightenment MSRs support
  x86/kvm/hyper-v: remove stale entries from vec_bitmap/auto_eoi_bitmap
    on vector change
  x86/kvm/hyper-v: inject #GP only when invalid SINTx vector is unmasked

 arch/x86/include/asm/kvm_host.h    |  4 +++
 arch/x86/include/uapi/asm/hyperv.h |  3 ++
 arch/x86/kvm/hyperv.c              | 58 +++++++++++++++++++++++++++++++-------
 arch/x86/kvm/x86.c                 | 12 +++++++-
 4 files changed, 66 insertions(+), 11 deletions(-)

-- 
2.14.3

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

end of thread, other threads:[~2018-02-28 17:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-28 13:43 [PATCH 0/3] x86/kvm/hyper-v: More fixes for TSC page clocksource for Hyper-V on KVM Vitaly Kuznetsov
2018-02-28 13:43 ` [PATCH 1/3] x86/kvm/hyper-v: add reenlightenment MSRs support Vitaly Kuznetsov
2018-02-28 16:48   ` Roman Kagan
2018-02-28 17:43     ` Vitaly Kuznetsov
2018-02-28 13:44 ` [PATCH 2/3] x86/kvm/hyper-v: remove stale entries from vec_bitmap/auto_eoi_bitmap on vector change Vitaly Kuznetsov
2018-02-28 14:38   ` Roman Kagan
2018-02-28 13:44 ` [PATCH 3/3] x86/kvm/hyper-v: inject #GP only when invalid SINTx vector is unmasked Vitaly Kuznetsov
2018-02-28 15:18   ` Roman Kagan
2018-02-28 15:35     ` Vitaly Kuznetsov
2018-02-28 16:14       ` Roman Kagan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).