• Dave Hansen's avatar
    x86/pkeys: Allow configuration of init_pkru · 76de9937
    Dave Hansen authored
    As discussed in the previous patch, there is a reliability
    benefit to allowing an init value for the Protection Keys Rights
    User register (PKRU) which differs from what the XSAVE hardware
    provides.
    
    But, having PKRU be 0 (its init value) provides some nonzero
    amount of optimization potential to the hardware.  It can, for
    instance, skip writes to the XSAVE buffer when it knows that PKRU
    is in its init state.
    
    The cost of losing this optimization is approximately 100 cycles
    per context switch for a workload which lightly using XSAVE
    state (something not using AVX much).  The overhead comes from a
    combinaation of actually manipulating PKRU and the overhead of
    pullin in an extra cacheline.
    
    This overhead is not huge, but it's also not something that I
    think we should unconditionally inflict on everyone.  So, make it
    configurable both at boot-time and from debugfs.
    
    Changes to the debugfs value affect all processes created after
    the write to debugfs.
    Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
    Cc: linux-arch@vger.kernel.org
    Cc: Dave Hansen <dave@sr71.net>
    Cc: mgorman@techsingularity.net
    Cc: arnd@arndb.de
    Cc: linux-api@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: luto@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: torvalds@linux-foundation.org
    Link: http://lkml.kernel.org/r/20160729163023.407672D2@viggo.jf.intel.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    76de9937
pkeys.c 6.54 KB