From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= <rkrcmar@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: linux-kernel@vger.kernel.org,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Wanpeng Li" <wanpeng.li@linux.intel.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Xiao Guangrong" <guangrong.xiao@linux.intel.com>,
"Kai Huang" <kai.huang@linux.intel.com>,
=?UTF-8?q?Mihai=20Don=C8=9Bu?= <mdontu@bitdefender.com>,
kvm@vger.kernel.org
Subject: Re: [PATCH] kvm/vmx: EPTP switching test
Date: Mon, 16 Nov 2015 18:51:06 +0100 [thread overview]
Message-ID: <20151116175105.GA17144@potion.brq.redhat.com> (raw)
In-Reply-To: <1447598396-6678-1-git-send-email-mst@redhat.com>
2015-11-15 18:00+0200, Michael S. Tsirkin:
> This patch adds a new parameter: eptp_switching_test, which enables
>
> testing EPT switching on VMX if supported by hardware. All EPT entries
> are initialized to the same value so this adds no useful functionality
> by itself, but can be used to test VMFUNC performance, and serve as a
> basis for future features based on EPTP switching.
>
> Support for nested virt is not enabled.
>
> This was tested using the following code within guest:
> #define VMX_VMFUNC ".byte 0x0f,0x01,0xd4"
> static void vmfunc(unsigned int nr, unsigned int ept)
> {
> asm volatile(VMX_VMFUNC
> :
> : "a"(nr), "c"(ept)
> : "memory");
> }
>
> VMFUNC instruction cost was measured at ~122 cycles.
> (Note: recent versions of gnu toolchain support
> the vmfunc instruction - removing the need for writing
> the bytecode manually).
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>
> I think I'd like to put this upstream so future eptp switching work can
> be implemented on top. Comments?
I'd wait for the future. Patch is already on the list so people
interested in benchmarking VMFUNC can quickly compile a kernel and
developers will need to overwrite the code anyway.
(And I think that eptp switching is expected to be used in conjuction
with #VE, so it'd then make sense to implement a nop for it as well.)
> diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
> @@ -3011,6 +3035,7 @@ static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf)
> SECONDARY_EXEC_PAUSE_LOOP_EXITING |
> SECONDARY_EXEC_RDTSCP |
> SECONDARY_EXEC_ENABLE_INVPCID |
> + SECONDARY_EXEC_ENABLE_VM_FUNCTIONS |
The VMFUNC vmexit should be handled to prevent guests from triggering a
WARN_ON on the host. (VMFUNC did just #UD before this patch.)
After that, it's ok for KVM.
next prev parent reply other threads:[~2015-11-16 17:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-15 16:00 [PATCH] kvm/vmx: EPTP switching test Michael S. Tsirkin
2015-11-16 17:51 ` =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= [this message]
2015-11-16 17:59 ` Michael S. Tsirkin
2015-11-16 18:18 ` =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?=
2015-11-16 18:52 ` Andy Lutomirski
2015-11-17 9:23 ` Paolo Bonzini
2015-11-17 1:45 ` Zhang, Yang Z
2015-11-17 1:45 ` Zhang, Yang Z
2015-11-17 10:17 ` Paolo Bonzini
2015-11-17 10:44 ` Wang, Wei W
2015-11-17 10:44 ` Wang, Wei W
2015-11-17 11:18 ` Paolo Bonzini
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=20151116175105.GA17144@potion.brq.redhat.com \
--to=rkrcmar@redhat.com \
--cc=guangrong.xiao@linux.intel.com \
--cc=kai.huang@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mdontu@bitdefender.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=wanpeng.li@linux.intel.com \
/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 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.