• T
    x86/fpu: Provide infrastructure for KVM FPU cleanup · c79f05aa
    Thomas Gleixner 提交于
    mainline inclusion
    from mainline-v5.16-rc1
    commit 69f6ed1d
    category: feature
    bugzilla: https://gitee.com/openeuler/intel-kernel/issues/I590ZC
    CVE: NA
    
    Intel-SIG: commit 69f6ed1d x86/fpu: Provide infrastructure for KVM FPU cleanup.
    
    --------------------------------
    
    For the upcoming AMX support it's necessary to do a proper integration with
    KVM. 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.
    
    Provide:
    
      - An allocator which initializes the state properly
    
      - A replacement for the existing FPU swap mechanim
    
    Aside of the reduced memory footprint, this also makes state switching
    more efficient when TIF_FPU_NEED_LOAD is set. It does not require a
    memcpy as the state is already correct in the to be swapped out fpstate.
    
    The existing interfaces will be removed once KVM is converted over.
    Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: NBorislav Petkov <bp@suse.de>
    Link: https://lkml.kernel.org/r/20211022185312.954684740@linutronix.deSigned-off-by: NLin Wang <lin.x.wang@intel.com>
    c79f05aa
api.h 3.9 KB