]> git.baikalelectronics.ru Git - kernel.git/commit
x86/fpu: Prepare for sanitizing KVM FPU code
authorThomas Gleixner <tglx@linutronix.de>
Fri, 22 Oct 2021 18:55:49 +0000 (20:55 +0200)
committerBorislav Petkov <bp@suse.de>
Sat, 23 Oct 2021 11:14:50 +0000 (13:14 +0200)
commitfb48c37f6de49c098103e43e1e1341ed4b00dba4
tree61596fae31136197ac604a4b59743e5521d1af13
parent839e8dffff21dca8f760892392251c1bb9c14dfb
x86/fpu: Prepare for sanitizing KVM FPU code

For the upcoming AMX support it's necessary to do a proper integration with
KVM. To avoid more nasty hackery in KVM which violate encapsulation extend
struct fpu and fpstate so the fpstate switching can be consolidated and
simplified.

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 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.

Add fpu::__task_fpstate to save the regular fpstate pointer while the task
is inside vcpu_run(). Add some state fields to fpstate to indicate the
nature of the state.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20211022185312.896403942@linutronix.de
arch/x86/include/asm/fpu/types.h