diff mbox

x86,kvm,vmx: Don't trap writes to CR4.TSD

Message ID 47a9cf4ebc3fde90fab06d54f32a225db9f0271c.1412727302.git.luto@amacapital.net (mailing list archive)
State New, archived
Headers show

Commit Message

Andy Lutomirski Oct. 8, 2014, 12:16 a.m. UTC
CR4.TSD is guest-owned; don't trap writes to it in VMX guests.  This
avoids a VM exit on context switches into or out of a PR_TSC_SIGSEGV
task.

I think that this fixes an unintentional side-effect of:
    4c38609ac569 KVM: VMX: Make guest cr4 mask more conservative

Signed-off-by: Andy Lutomirski <luto@amacapital.net>
---
 arch/x86/kvm/vmx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andy Lutomirski Oct. 22, 2014, 7:10 p.m. UTC | #1
On Tue, Oct 7, 2014 at 5:16 PM, Andy Lutomirski <luto@amacapital.net> wrote:
> CR4.TSD is guest-owned; don't trap writes to it in VMX guests.  This
> avoids a VM exit on context switches into or out of a PR_TSC_SIGSEGV
> task.

Friendly ping.  I suspect this got lost in KVM Forum, etc.

--Andy

>
> I think that this fixes an unintentional side-effect of:
>     4c38609ac569 KVM: VMX: Make guest cr4 mask more conservative
>
> Signed-off-by: Andy Lutomirski <luto@amacapital.net>
> ---
>  arch/x86/kvm/vmx.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 54ca301f8415..0653233fcc82 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -105,7 +105,7 @@ module_param(nested, bool, S_IRUGO);
>         (KVM_VM_CR0_ALWAYS_ON_UNRESTRICTED_GUEST | X86_CR0_PG | X86_CR0_PE)
>  #define KVM_CR4_GUEST_OWNED_BITS                                     \
>         (X86_CR4_PVI | X86_CR4_DE | X86_CR4_PCE | X86_CR4_OSFXSR      \
> -        | X86_CR4_OSXMMEXCPT)
> +        | X86_CR4_OSXMMEXCPT | X86_CR4_TSD)
>
>  #define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE)
>  #define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE)
> --
> 1.9.3
>
Paolo Bonzini Oct. 22, 2014, 7:52 p.m. UTC | #2
On 10/22/2014 09:10 PM, Andy Lutomirski wrote:
> On Tue, Oct 7, 2014 at 5:16 PM, Andy Lutomirski <luto@amacapital.net> wrote:
>> CR4.TSD is guest-owned; don't trap writes to it in VMX guests.  This
>> avoids a VM exit on context switches into or out of a PR_TSC_SIGSEGV
>> task.
> 
> Friendly ping.  I suspect this got lost in KVM Forum, etc.

Yup, will push tomorrow.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 54ca301f8415..0653233fcc82 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -105,7 +105,7 @@  module_param(nested, bool, S_IRUGO);
 	(KVM_VM_CR0_ALWAYS_ON_UNRESTRICTED_GUEST | X86_CR0_PG | X86_CR0_PE)
 #define KVM_CR4_GUEST_OWNED_BITS				      \
 	(X86_CR4_PVI | X86_CR4_DE | X86_CR4_PCE | X86_CR4_OSFXSR      \
-	 | X86_CR4_OSXMMEXCPT)
+	 | X86_CR4_OSXMMEXCPT | X86_CR4_TSD)
 
 #define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE)
 #define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE)