From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, "Liu, Jing2" <jing2.liu@intel.com>,
Paolo Bonzini <pbonzini@redhat.com>,
"Bae, Chang Seok" <chang.seok.bae@intel.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
Arjan van de Ven <arjan@linux.intel.com>,
kvm@vger.kernel.org, "Nakajima, Jun" <jun.nakajima@intel.com>,
Sean Christopherson <seanjc@google.com>
Subject: [patch 0/4] x86/fpu/kvm: Sanitize the FPU guest/user handling
Date: Sun, 17 Oct 2021 19:03:11 +0200 (CEST) [thread overview]
Message-ID: <20211017151447.829495362@linutronix.de> (raw)
Currently KVM allocates two FPU structs which are used for saving the user
state of the vCPU thread and restoring the guest state when entering
vcpu_run() and doing the reverse operation before leaving vcpu_run().
With the new fpstate mechanism this can be reduced to one extra buffer by
swapping the fpstate pointer in current::thread::fpu. This makes also the
upcoming support for AMX and XFD simpler because then fpstate information
(features, sizes, xfd) are always consistent and it does not require any
nasty workarounds.
The following series cleans that up and replaces the current scheme with a
single guest state which is switched in when entering vcpu_run() and
switched out before leaving it.
The rework is valuable even without AMX/XFD because it consumes less memory
and when swapping the fpstates there is no memory copy required when
TIF_NEED_LOAD_FPU is set on the going out fpstate.
The series is based on:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/fpu-3
and is now part of the full AMX series:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/fpu
On top of that I've integrated the KVM reallocation mechanism into:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/fpu-kvm
The latter builds, boots and runs KVM guests, but that reallocation
functionality is obviously completely untested. I want to share this with
KVM folks so they can start to look how to integrate their XFD/XCR0 and
reallocation scheme as discussed and outlined here:
https://lore.kernel.org/r/87mtn93u58.ffs@tglx
and the related thread. It's a tiny incremental update on top of x86/fpu (6
files changed, 183 insertions(+), 36 deletions(-)) which reuses the host
side mechanisms.
Thanks,
tglx
---
include/asm/fpu/api.h | 19 ++++++--
include/asm/fpu/types.h | 44 ++++++++++++++++++-
include/asm/kvm_host.h | 7 ---
kernel/fpu/core.c | 110 +++++++++++++++++++++++++++++++++---------------
kvm/svm/svm.c | 7 +--
kvm/x86.c | 88 ++++++++++----------------------------
6 files changed, 165 insertions(+), 110 deletions(-)
next reply other threads:[~2021-10-17 17:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-17 17:03 Thomas Gleixner [this message]
2021-10-17 17:03 ` [patch 1/4] x86/fpu: Prepare for sanitizing KVM FPU code Thomas Gleixner
2021-10-17 17:03 ` [patch 2/4] x86/fpu: Provide infrastructure for KVM FPU cleanup Thomas Gleixner
2021-10-17 17:03 ` [patch 3/4] x86/kvm: Convert FPU handling to a single swap buffer Thomas Gleixner
2021-10-18 11:55 ` Paolo Bonzini
2021-10-17 17:03 ` [patch 4/4] x86/fpu: Remove old KVM FPU interface Thomas Gleixner
2021-10-19 19:43 ` [patch 0/4] x86/fpu/kvm: Sanitize the FPU guest/user handling Bae, Chang Seok
2021-10-20 9:19 ` 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=20211017151447.829495362@linutronix.de \
--to=tglx@linutronix.de \
--cc=arjan@linux.intel.com \
--cc=chang.seok.bae@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=jing2.liu@intel.com \
--cc=jun.nakajima@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@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
all inboxes | Powered by JetHome®