[PATCH 00/16] x86, mpx updates for 4.1 (take 4)

From: Dave Hansen
Date: Tue Mar 31 2015 - 20:46:16 EST


Changes from take 3 / v18 (all minor):

* use DECLARE_EVENT_CLASS()/DEFINE_EVENT() for
the ranged tracepoints to save 10 lines of code.

Changes from take 2 / v17 (all minor):

* fix a couple of whitespace borkages caught by checkpatch,
and a spelling error or two.
* replace printk with pr_info() for boot disable
* change trace print format for address intervals
* fix up variable name in tsk_get_xsave_addr() comment
* remove tsk_get_xsave_field() GPL export
* fix up Qiaowei's From:

--

Hi x86 maintainers,

There are 4 basic things going on here:
1. Make FPU/xsave code preempt safe and work properly
2. Add trace points to make kernel and app debugging easier
3. Add a boot-time disable for mpx
4. Support 32-bit binaries to run on 64-bit kernels

I've hesitated sending this in the past few weeks as
the FPU code had a lot of churn and affected our
ability to test on current kernels. It seems to have
settled down and appears more stable now.

As mentioned in the tsk_get_xsave_addr() patches, this must
be applied after Oleg's fixes which currently ends with:

commit 7fc253e27 ("x86/fpu: Kill eager_fpu_init_bp()")

This set is also available against 4.0-rc4 in git:

git://git.kernel.org/pub/scm/linux/kernel/git/daveh/x86-mpx.git mpx-v19

Dave Hansen (16):
x86, fpu: wrap get_xsave_addr() to make it safer
x86, mpx: use new tsk_get_xsave_addr()
x86, mpx: trace #BR exceptions
x86, mpx: trace entry to bounds exception paths
x86, mpx: trace ranged MPX operations
x86, mpx: trace allocation of new bounds tables
x86, mpx: boot-time disable
x86: make is_64bit_mm() widely available
x86: make __VIRTUAL_MASK safe to use on 32 bit
x86, mpx: we do not allocate the bounds directory
x86, mpx: remove redundant MPX_BNDCFG_ADDR_MASK
x86, mpx: Add temporary variable to reduce masking
x86, mpx: new directory entry to addr helper
x86, mpx: do 32-bit-only cmpxchg for 32-bit apps
x86, mpx: support 32-bit binaries on 64-bit kernel
x86, mpx: allow mixed binaries again

Documentation/kernel-parameters.txt | 4 +
arch/x86/include/asm/mmu_context.h | 13 ++
arch/x86/include/asm/mpx.h | 74 +++++-----
arch/x86/include/asm/page_types.h | 8 ++
arch/x86/include/asm/trace/mpx.h | 121 ++++++++++++++++
arch/x86/include/asm/xsave.h | 1 +
arch/x86/kernel/cpu/common.c | 16 +++
arch/x86/kernel/traps.c | 12 +-
arch/x86/kernel/uprobes.c | 10 +-
arch/x86/kernel/xsave.c | 31 +++++
arch/x86/mm/mpx.c | 270 +++++++++++++++++++++++++++++-------
11 files changed, 456 insertions(+), 104 deletions(-)
create mode 100644 arch/x86/include/asm/trace/mpx.h

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/