From: Andy Lutomirski <luto@kernel.org>
To: Paolo Bonzini <pbonzini@redhat.com>, X86 ML <x86@kernel.org>
Cc: kvm list <kvm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Borislav Petkov <bpetkov@suse.de>,
Thomas Garnier <thgarnie@google.com>,
Jim Mattson <jmattson@google.com>,
Andy Lutomirski <luto@kernel.org>
Subject: [PATCH 0/6] KVM TSS cleanups and speedups
Date: Mon, 20 Feb 2017 08:56:08 -0800 [thread overview]
Message-ID: <cover.1487609329.git.luto@kernel.org> (raw)
The first four patches here are intended to be straightforward
cleanups and to make a better base for Thomas' GDT series. They may
be a slight speedup, too, because they remove an STR instruction
from the VMX entry path.
The last two patches are a reasonably large speedup but need careful
review.
FWIW, I can see lots of additional easy-ish speedups here. For example:
- The GDT reload on VM exit isn't really needed at all. Instead let's
just change the kernel limit to 0xFFFF. Doing that naively would
waste memory, but doing it carefully on top of Thomas' series would
be straightforward and almost free.
- RDMSR from MSR_GS_BASE is totally pointless.
- Once I or someone finishes the FSGSBASE series, we get a big speedup
there.
- The LDT reload code should be split up and optimized better, I think.
Andy Lutomirski (6):
x86/asm: Define the kernel TSS limit in a macro
x86/kvm/vmx: Don't fetch the TSS base from the GDT
x86/kvm/vmx: Get rid of segment_base() on 64-bit kernels
x86/kvm/vmx: Simplify segment_base()
x86/asm/64: Drop __cacheline_aligned from struct x86_hw_tss
x86/kvm/vmx: Defer TR reload after VM exit
arch/x86/include/asm/desc.h | 58 ++++++++++++++++++++++++++++++------
arch/x86/include/asm/processor.h | 12 +++++++-
arch/x86/kernel/ioport.c | 5 ++++
arch/x86/kernel/process.c | 10 +++++++
arch/x86/kvm/vmx.c | 63 +++++++++++++++++-----------------------
5 files changed, 102 insertions(+), 46 deletions(-)
--
2.9.3
next reply other threads:[~2017-02-20 16:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-20 16:56 Andy Lutomirski [this message]
2017-02-20 16:56 ` [PATCH 1/6] x86/asm: Define the kernel TSS limit in a macro Andy Lutomirski
2017-02-20 16:56 ` [PATCH 2/6] x86/kvm/vmx: Don't fetch the TSS base from the GDT Andy Lutomirski
2017-02-20 16:56 ` [PATCH 3/6] x86/kvm/vmx: Get rid of segment_base() on 64-bit kernels Andy Lutomirski
2017-02-20 16:56 ` [PATCH 4/6] x86/kvm/vmx: Simplify segment_base() Andy Lutomirski
2017-02-20 17:49 ` Thomas Garnier
2017-02-20 16:56 ` [PATCH 5/6] x86/asm/64: Drop __cacheline_aligned from struct x86_hw_tss Andy Lutomirski
2017-02-20 16:56 ` [PATCH 6/6] x86/kvm/vmx: Defer TR reload after VM exit Andy Lutomirski
2017-02-20 17:51 ` Paolo Bonzini
2017-02-20 17:52 ` [PATCH 0/6] KVM TSS cleanups and speedups 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=cover.1487609329.git.luto@kernel.org \
--to=luto@kernel.org \
--cc=bpetkov@suse.de \
--cc=jmattson@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=thgarnie@google.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