From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, Andrew Cooper <andrew.cooper3@citrix.com>,
"Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
Andrew Cooper <Andrew.Cooper3@citrix.com>
Subject: [patch 0/3] x86/fpu/xsave: Add XSAVEC support and XGETBV1 utilization
Date: Mon, 4 Apr 2022 14:11:23 +0200 (CEST) [thread overview]
Message-ID: <20220404103741.809025935@linutronix.de> (raw)
This series adds:
1) XSAVEC support
Hypervisors expose XSAVEC but not XSAVES to guests, but the kernel
does not support XSAVEC. Which means it cannot make use of the
compacted storage format.
2) Utilize XGETBV1
XGETBV1 reads a bitmap which contains the current active XSTATE
components. This bitmap can be used to optimize the behaviour of
XSAVES and XSAVEC by requesting only the active components to be
saved.
While the init optimization of XSAVEC and XSAVES skips writing the
state of components which are inactive, the buffer layout is still
providing the space for the inactive, but requested to save
components. Which is suboptimal in terms of prefetch and dTLB when
the active component bitmap is sparse.
Thanks,
tglx
---
include/asm/cpufeatures.h | 2
kernel/fpu/xstate.c | 145 +++++++++++++++++++++++++++++++++++++---------
kernel/fpu/xstate.h | 42 ++++++++++---
3 files changed, 152 insertions(+), 37 deletions(-)
next reply other threads:[~2022-04-04 12:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-04 12:11 Thomas Gleixner [this message]
2022-04-04 12:11 ` [patch 1/3] x86/fpu/xsave: Support XSAVEC in the kernel Thomas Gleixner
2022-04-04 16:10 ` Andrew Cooper
2022-04-14 14:43 ` Dave Hansen
2022-04-25 13:11 ` [tip: x86/fpu] " tip-bot2 for Thomas Gleixner
2022-04-04 12:11 ` [patch 2/3] x86/fpu/xsave: Prepare for optimized compaction Thomas Gleixner
2022-04-14 15:46 ` Dave Hansen
2022-04-19 12:39 ` Thomas Gleixner
2022-04-19 13:33 ` Thomas Gleixner
2022-04-04 12:11 ` [patch 3/3] x86/fpu/xsave: Optimize XSAVEC/S when XGETBV1 is supported Thomas Gleixner
2022-04-14 17:24 ` Dave Hansen
2022-04-19 13:43 ` Thomas Gleixner
2022-04-19 21:22 ` Thomas Gleixner
2022-04-20 18:15 ` Tom Lendacky
2022-04-22 19:30 ` Thomas Gleixner
2022-04-23 15:20 ` Dave Hansen
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=20220404103741.809025935@linutronix.de \
--to=tglx@linutronix.de \
--cc=andrew.cooper3@citrix.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rick.p.edgecombe@intel.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;
as well as URLs for NNTP newsgroup(s).