linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tianyu Lan <Tianyu.Lan@microsoft.com>
To: unlisted-recipients:; (no To-header on input)
Cc: Tianyu Lan <Tianyu.Lan@microsoft.com>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	"hpa@zytor.com" <hpa@zytor.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	KY Srinivasan <kys@microsoft.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"rkrcmar@redhat.com" <rkrcmar@redhat.com>,
	Stephen Hemminger <sthemmin@microsoft.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"x86@kernel.org" <x86@kernel.org>,
	"Michael Kelley (EOSG)" <Michael.H.Kelley@microsoft.com>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>
Subject: [PATCH V3 0/4] KVM/x86/hyper-V: Introduce PV guest address space mapping flush support
Date: Thu, 19 Jul 2018 08:39:59 +0000	[thread overview]
Message-ID: <20180719083946.121493-1-Tianyu.Lan@microsoft.com> (raw)

Hyper-V provides a para-virtualization hypercall HvFlushGuestPhysicalAddressSpace
to flush nested VM address space mapping in l1 hypervisor and it's to reduce overhead
of flushing ept tlb among vcpus. The tradition way is to send IPIs to all affected
vcpus and executes INVEPT on each vcpus. It will trigger several vmexits for IPI and
INVEPT emulation. The pv hypercall can help to flush specified ept table on all vcpus
via one single hypercall.

Change since v2:
       - Make ept_pointers_match as tristate "check", "match" and "mismatch".
       Set "check" in vmx_set_cr3(), check all ept table pointers in hv_remote_flush_tlb()
       and call hypercall when all ept pointers are same.
       - Rename kvm_arch_hv_flush_remote_tlb with kvm_arch_flush_remote_tlb and
       Rename kvm_x86_ops->hv_tlb_remote_flush with kvm_x86_ops->tlb_remote_flush
       - Fix issue that ignore updating tlbs_dirty during calling kvm_arch_flush_remote_tlbs()
       - Merge patch "KVM/VMX: Add identical ept table pointer check" and
       patch "KVM/x86: Add tlb_remote_flush callback support for vmx"

Change since v1:
       - Fix compilation error for non-x86 platform.
       - Use ept_pointers_match to check condition of identical ept
            table pointer and get ept pointer from struct vcpu_vmx->ept_pointer.
       - Add hyperv_nested_flush_guest_mapping ftrace support
		     


Lan Tianyu (4):
  X86/Hyper-V: Add flush HvFlushGuestPhysicalAddressSpace hypercall
    support
  X86/Hyper-V: Add hyperv_nested_flush_guest_mapping ftrace support
  KVM: Add tlb remote flush callback in kvm_x86_ops.
  KVM/x86: Add tlb_remote_flush callback support for vmx

 arch/x86/hyperv/Makefile            |  2 +-
 arch/x86/hyperv/nested.c            | 67 ++++++++++++++++++++++++++++++++++
 arch/x86/include/asm/hyperv-tlfs.h  |  8 +++++
 arch/x86/include/asm/kvm_host.h     | 11 ++++++
 arch/x86/include/asm/mshyperv.h     |  2 ++
 arch/x86/include/asm/trace/hyperv.h | 14 ++++++++
 arch/x86/kvm/vmx.c                  | 72 ++++++++++++++++++++++++++++++++++++-
 include/linux/kvm_host.h            |  7 ++++
 virt/kvm/kvm_main.c                 |  3 +-
 9 files changed, 183 insertions(+), 3 deletions(-)
 create mode 100644 arch/x86/hyperv/nested.c

-- 
2.14.3

             reply	other threads:[~2018-07-19  8:40 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-19  8:39 Tianyu Lan [this message]
2018-07-19  8:40 ` [PATCH V3 1/4] X86/Hyper-V: Add flush HvFlushGuestPhysicalAddressSpace hypercall support Tianyu Lan
2018-07-19 12:05   ` Thomas Gleixner
2018-07-19 12:41     ` Tianyu Lan
2018-07-19 12:54       ` Thomas Gleixner
2018-07-19  8:40 ` [PATCH V3 2/4] X86/Hyper-V: Add hyperv_nested_flush_guest_mapping ftrace support Tianyu Lan
2018-07-19  8:40 ` [PATCH V3 3/4] KVM: Add tlb remote flush callback in kvm_x86_ops Tianyu Lan
2018-07-19  8:40 ` [PATCH V3 4/4] KVM/x86: Add tlb_remote_flush callback support for vmx Tianyu Lan
2018-07-19  8:57 ` [PATCH V3 0/4] KVM/x86/hyper-V: Introduce PV guest address space mapping flush support Paolo Bonzini
2018-07-19  9:31   ` Tianyu Lan
2018-07-19 13:56 ` [Update PATCH V3 1/4] X86/Hyper-V: Add flush HvFlushGuestPhysicalAddressSpace hypercall support Tianyu Lan
2018-07-20  3:58 ` [PATCH V3 0/4] KVM/x86/hyper-V: Introduce PV guest address space mapping flush support KY Srinivasan
2018-07-20  8:31   ` Paolo Bonzini
2018-07-23  7:39     ` Wanpeng Li
2018-07-23  7:52       ` Tianyu Lan

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=20180719083946.121493-1-Tianyu.Lan@microsoft.com \
    --to=tianyu.lan@microsoft.com \
    --cc=Michael.H.Kelley@microsoft.com \
    --cc=devel@linuxdriverproject.org \
    --cc=haiyangz@microsoft.com \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=kys@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=sthemmin@microsoft.com \
    --cc=tglx@linutronix.de \
    --cc=vkuznets@redhat.com \
    --cc=x86@kernel.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 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).