OSDN Git Service

Merge tag 'alternatives_padding' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorIngo Molnar <mingo@kernel.org>
Wed, 4 Mar 2015 05:33:49 +0000 (06:33 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 4 Mar 2015 05:36:15 +0000 (06:36 +0100)
commitf8e92fb4b0ffc4d62279ab39f34e798e37e90b0b
tree9caa8df664792e64ddcb4ea03fd418a8a529c82e
parentd2c032e3dc58137a7261a7824d3acce435db1d66
parentdfecb95cdfeaf7872d83a96bec3a606e9cd95c8d
Merge tag 'alternatives_padding' of git://git./linux/kernel/git/bp/bp into x86/asm

Pull alternative instructions framework improvements from Borislav Petkov:

 "A more involved rework of the alternatives framework to be able to
  pad instructions and thus make using the alternatives macros more
  straightforward and without having to figure out old and new instruction
  sizes but have the toolchain figure that out for us.

  Furthermore, it optimizes JMPs used so that fetch and decode can be
  relieved with smaller versions of the JMPs, where possible.

  Some stats:

    x86_64 defconfig:

    Alternatives sites total:               2478
    Total padding added (in Bytes):         6051

  The padding is currently done for:

    X86_FEATURE_ALWAYS
    X86_FEATURE_ERMS
    X86_FEATURE_LFENCE_RDTSC
    X86_FEATURE_MFENCE_RDTSC
    X86_FEATURE_SMAP

  This is with the latest version of the patchset. Of course, on each
  machine the alternatives sites actually being patched are a proper
  subset of the total number."

Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/include/asm/cpufeature.h
arch/x86/kernel/entry_32.S
tools/perf/bench/mem-memcpy.c