Linux 5.19 Adds Support For XSAVEC When Running As A VM Guest

Written by Michael Larabel in Virtualization on 1 June 2022 at 12:00 AM EDT. 3 Comments
VIRTUALIZATION
Various hypervisors expose support for the XSAVEC instruction as an XSAVE with compaction as an efficiency optimization. However, the Linux kernel doesn't currently make use of XSAVEC as an alternative to XSAVES (supervisor mode) but that is now changing with Linux 5.19.

XSAVEC has been supported since Intel Skylake as XSAVE with compaction for improved performance and possible memory usage savings over the original XSAVE register-saving instruction. XSAVEC was added with Skylake as the same time as XSAVES for saving supervisor components too while still supporting compaction, and that's been supported by the Linux kernel for saving the processor extended states.

Hypervisors though due to their nature don't expose XSAVES but several do support XSAVEC. Citrix thus requested from Linux kernel developers the ability for the Linux kernel to support using XSAVEC where available as an optimization over the traditional XSAVE instruction usage due to the compacted storage format.

Since last week's x86/fpu pull this XSAVEC support for the Linux kernel is now mainlined for benefiting Linux running under modern hypervisors with this minor optimization.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week