From: Andy Lutomirski <luto@kernel.org> To: x86@kernel.org Cc: Borislav Petkov <bp@alien8.de>, linux-kernel@vger.kernel.org, Rusty Russell <rusty@rustcorp.com.au>, Paolo Bonzini <pbonzini@redhat.com>, Rik van Riel <riel@redhat.com>, kvm list <kvm@vger.kernel.org>, Andy Lutomirski <luto@kernel.org> Subject: [PATCH 4/8] x86/kvm: Remove host CR0.TS manipulation Date: Mon, 31 Oct 2016 15:18:45 -0700 [thread overview] Message-ID: <b212064922537c05d0c81d931fc4dbe769127ce7.1477951965.git.luto@kernel.org> (raw) In-Reply-To: <cover.1477951965.git.luto@kernel.org> In-Reply-To: <cover.1477951965.git.luto@kernel.org> Now that x86 always uses eager fpu switching on the host, there's no need for KVM to manipulate the host's CR0.TS. This should be both simpler and faster. Signed-off-by: Andy Lutomirski <luto@kernel.org> --- arch/x86/kvm/vmx.c | 12 ++++-------- arch/x86/kvm/x86.c | 5 ----- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index cf1b16dbc98a..531c44633190 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -2144,12 +2144,6 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) #endif if (vmx->host_state.msr_host_bndcfgs) wrmsrl(MSR_IA32_BNDCFGS, vmx->host_state.msr_host_bndcfgs); - /* - * If the FPU is not active (through the host task or - * the guest vcpu), then restore the cr0.TS bit. - */ - if (!fpregs_active() && !vmx->vcpu.guest_fpu_loaded) - stts(); load_gdt(this_cpu_ptr(&host_gdt)); } @@ -4871,9 +4865,11 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx) u32 low32, high32; unsigned long tmpl; struct desc_ptr dt; - unsigned long cr4; + unsigned long cr0, cr4; - vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */ + cr0 = read_cr0(); + WARN_ON(cr0 & X86_CR0_TS); + vmcs_writel(HOST_CR0, cr0); /* 22.2.3 */ vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */ /* Save the most likely value for this task's CR4 in the VMCS. */ diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index d5700263dad2..123d428d319a 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -5060,11 +5060,6 @@ static void emulator_get_fpu(struct x86_emulate_ctxt *ctxt) { preempt_disable(); kvm_load_guest_fpu(emul_to_vcpu(ctxt)); - /* - * CR0.TS may reference the host fpu state, not the guest fpu state, - * so it may be clear at this point. - */ - clts(); } static void emulator_put_fpu(struct x86_emulate_ctxt *ctxt) -- 2.7.4
next prev parent reply other threads:[~2016-10-31 22:19 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-10-31 22:18 [PATCH 0/8] x86/fpu: Remove CR0.TS support Andy Lutomirski 2016-10-31 22:18 ` [PATCH 1/8] fpu/init: Get rid of two redundant clts() calls Andy Lutomirski 2016-11-01 7:13 ` [tip:x86/fpu] x86/fpu: " tip-bot for Andy Lutomirski 2016-10-31 22:18 ` [PATCH 2/8] fpu/bugs: Stop saving and restoring CR0.TS in fpu__init_check_bugs() Andy Lutomirski 2016-11-01 7:14 ` [tip:x86/fpu] x86/fpu: " tip-bot for Andy Lutomirski 2016-10-31 22:18 ` [PATCH 3/8] x86/fpu: Remove irq_ts_save() and irq_ts_restore() Andy Lutomirski 2016-11-01 7:14 ` [tip:x86/fpu] " tip-bot for Andy Lutomirski 2016-10-31 22:18 ` Andy Lutomirski [this message] 2016-11-01 7:15 ` [tip:x86/fpu] x86/fpu, kvm: Remove host CR0.TS manipulation tip-bot for Andy Lutomirski 2016-10-31 22:18 ` [PATCH 5/8] lguest: Remove CR0.TS support Andy Lutomirski 2016-11-01 7:15 ` [tip:x86/fpu] x86/fpu, " tip-bot for Andy Lutomirski 2016-10-31 22:18 ` [PATCH 6/8] x86/fpu: #NM without FPU emulation is an error Andy Lutomirski 2016-11-01 7:16 ` [tip:x86/fpu] x86/fpu: Handle #NM without FPU emulation as " tip-bot for Andy Lutomirski 2016-10-31 22:18 ` [PATCH 7/8] x86/fpu: Remove stts() Andy Lutomirski 2016-11-01 7:16 ` [tip:x86/fpu] " tip-bot for Andy Lutomirski 2016-10-31 22:18 ` [PATCH 8/8] x86/fpu: Remove clts() Andy Lutomirski 2016-11-01 7:17 ` [tip:x86/fpu] " tip-bot for Andy Lutomirski 2016-10-31 22:41 ` [PATCH 0/8] x86/fpu: Remove CR0.TS support Paul Bolle 2016-10-31 23:04 ` Borislav Petkov 2016-10-31 23:10 ` Paul Bolle 2016-10-31 23:48 ` Borislav Petkov 2016-11-01 7:51 ` Paul Bolle 2016-11-01 8:50 ` Borislav Petkov
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=b212064922537c05d0c81d931fc4dbe769127ce7.1477951965.git.luto@kernel.org \ --to=luto@kernel.org \ --cc=bp@alien8.de \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=riel@redhat.com \ --cc=rusty@rustcorp.com.au \ --cc=x86@kernel.org \ --subject='Re: [PATCH 4/8] x86/kvm: Remove host CR0.TS manipulation' \ /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
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.