Skip to content

x86, mpx updates for 4.1 (take 4)

Dave Hansen lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest16 patches 13 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/16x86, fpu: wrap get_xsave_addr() to make it saferarch/x86/include/asm/xsave.h arch/x86/kernel/xsave.c+32 -010 replies
2/16x86, mpx: use new tsk_get_xsave_addr()arch/x86/include/asm/mpx.h arch/x86/kernel/traps.c arch/x86/mm/mpx.c+18 -210 replies
3/16x86, mpx: trace #BR exceptionsarch/x86/include/asm/trace/mpx.h arch/x86/kernel/traps.c arch/x86/mm/mpx.c+53 -00 replies
4/16x86, mpx: trace entry to bounds exception pathsarch/x86/include/asm/trace/mpx.h arch/x86/mm/mpx.c+27 -00 replies
5/16x86, mpx: trace ranged MPX operationsarch/x86/include/asm/trace/mpx.h arch/x86/mm/mpx.c+34 -00 replies
6/16x86, mpx: trace allocation of new bounds tablesarch/x86/include/asm/trace/mpx.h arch/x86/mm/mpx.c+17 -00 replies
7/16x86, mpx: boot-time disableDocumentation/kernel-parameters.txt arch/x86/kernel/cpu/common.c+20 -00 replies
8/16x86: make is_64bit_mm() widely availablearch/x86/include/asm/mmu_context.h arch/x86/kernel/uprobes.c+14 -90 replies
9/16x86: make __VIRTUAL_MASK safe to use on 32 bitarch/x86/include/asm/page_types.h+8 -00 replies
10/16x86, mpx: we do not allocate the bounds directoryarch/x86/mm/mpx.c+2 -20 replies
11/16x86, mpx: remove redundant MPX_BNDCFG_ADDR_MASKarch/x86/include/asm/mpx.h+0 -10 replies
12/16x86, mpx: Add temporary variable to reduce maskingarch/x86/mm/mpx.c+4 -30 replies
13/16x86, mpx: new directory entry to addr helperarch/x86/include/asm/mpx.h arch/x86/mm/mpx.c+34 -80 replies
14/16x86, mpx: do 32-bit-only cmpxchg for 32-bit appsarch/x86/mm/mpx.c+36 -50 replies
15/16x86, mpx: support 32-bit binaries on 64-bit kernelarch/x86/include/asm/mpx.h arch/x86/mm/mpx.c+163 -550 replies
16/16x86, mpx: allow mixed binaries againarch/x86/mm/mpx.c+0 -60 replies

Reviews trailers per patch

None of the 16 patches has a Reviewed-by or Acked-by.

PatchQiaowei Ren
1/16
2/16
3/16
4/16
5/16
6/16
7/16
8/16
9/16
10/16
11/16
12/16
13/16
14/16
15/16Based-on-patch-by
16/16

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

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

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