lkml.org 
[lkml]   [2011]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[RFC 0/8] rework of extended state handling, LWP support
    Date
    This patch set is a general cleanup and rework of the code related to
    handling of FPU and otherextended states.

    All handling of extended states, including the FPU state, is now handled
    by xsave/xrstor wrappers that fall back to fxsave/fxrstor, or even
    fsave/frstor, if hardware support for those features is lacking.

    Non-lazy xstates, which cannot be restored lazily, can now be easily
    supported with almost no processing overhead. This makes adding basic
    support for AMDs LWP almost trivial.

    Since non-lazy xstates are inherently incompatible with lazy allocation
    of the xstate area, the complete removal of lazy allocation to further
    reduce code complexity should be considered. Since SSE-optimized library
    functions are widely used today, most processes would have an xstate
    area anyway, so the memory overhead wouldn't be big enough to be much of
    an issue.


    Hans Rosenfeld (8):
    x86, xsave: cleanup fpu/xsave support
    x86, xsave: rework fpu/xsave support
    x86, xsave: cleanup fpu/xsave signal frame setup
    x86, xsave: remove unused code
    x86, xsave: more cleanups
    x86, xsave: add support for non-lazy xstates
    x86, xsave: add kernel support for AMDs Lightweight Profiling (LWP)
    x86, xsave: remove lazy allocation of xstate area

    arch/x86/ia32/ia32_signal.c | 4 +-
    arch/x86/include/asm/i387.h | 226 +++++++-------------------
    arch/x86/include/asm/processor.h | 12 ++
    arch/x86/include/asm/sigcontext.h | 12 ++
    arch/x86/include/asm/thread_info.h | 4 +-
    arch/x86/include/asm/xsave.h | 99 ++---------
    arch/x86/kernel/i387.c | 310 ++++--------------------------------
    arch/x86/kernel/process_32.c | 29 ++---
    arch/x86/kernel/process_64.c | 28 +---
    arch/x86/kernel/signal.c | 4 +-
    arch/x86/kernel/traps.c | 47 +-----
    arch/x86/kernel/xsave.c | 313 +++++++++++++++++++++++-------------
    arch/x86/kvm/vmx.c | 2 +-
    arch/x86/kvm/x86.c | 11 +-
    arch/x86/math-emu/fpu_entry.c | 8 +-
    drivers/lguest/x86/core.c | 2 +-
    16 files changed, 373 insertions(+), 738 deletions(-)




    \
     
     \ /
      Last update: 2011-03-09 20:19    [W:0.028 / U:60.200 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site