• S
    x86: Avoid unnecessary __clear_user() and xrstor in signal handling · 8e221b6d
    Suresh Siddha 提交于
    fxsave/xsave doesn't touch all the bytes in the memory layout used by
    these instructions. Specifically SW reserved (bytes 464..511) fields
    in the fxsave frame and the reserved fields in the xsave header.
    
    To present a clean context for the signal handling, just clear these fields
    instead of clearing the complete fxsave/xsave memory layout, when we dump these
    registers directly to the user signal frame.
    
    Also avoid the call to second xrstor (which inits the state not passed
    in the signal frame) in restore_user_xstate() if all the state has already
    been restored by the first xrstor.
    
    These changes improve the performance of signal handling(by ~3-5% as measured
    by the lat_sig).
    Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
    LKML-Reference: <1277249017.2847.85.camel@sbs-t61.sc.intel.com>
    Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
    8e221b6d
i387.h 11.9 KB