All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] locking and misc x86 updates for v4.20
@ 2018-10-23 10:26 Ingo Molnar
  0 siblings, 0 replies; only message in thread
From: Ingo Molnar @ 2018-10-23 10:26 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Greg Kroah-Hartman, Peter Zijlstra, Thomas Gleixner,
	Paul E. McKenney, Andrew Morton, Borislav Petkov

Linus,

Please pull the latest locking-core-for-linus git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-for-linus

   # HEAD: 01a14bda11add9dcd4a59200f13834d634559935 locking/lockdep: Make global debug_locks* variables read-mostly

Lots of changes in this cycle - in part because locking/core attracted a 
number of related x86 low level work which was easier to handle in a 
single tree:

 - Linux Kernel Memory Consistency Model updates
   (Alan Stern, Paul E. McKenney, Andrea Parri)

 - lockdep scalability improvements and micro-optimizations (Waiman Long)

 - rwsem improvements (Waiman Long)

 - spinlock micro-optimization (Matthew Wilcox)

 - qspinlocks: Provide a liveness guarantee (more fairness) on x86. 
  (Peter Zijlstra)

 - Add support for relative references in jump tables on arm64, x86 and 
   s390 to optimize jump labels (Ard Biesheuvel, Heiko Carstens)

 - Be a lot less permissive on weird (kernel address) uaccess faults on
   x86: BUG() when uaccess helpers fault on kernel addresses (Jann Horn)

 - macrofy x86 asm statements to un-confuse the GCC inliner. (Nadav Amit)

 - ... and a handful of other smaller changes as well.

 Thanks,

	Ingo

------------------>
Adam Borowski (1):
      x86/defconfig: Enable CONFIG_USB_XHCI_HCD=y

Alan Stern (1):
      tools/memory-model: Add extra ordering for locks and remove it for ordinary release/acquire

Andrea Parri (1):
      locking/memory-barriers: Replace smp_cond_acquire() with smp_cond_load_acquire()

Andrew Murray (1):
      Documentation/lockstat: Fix trivial typo

Ard Biesheuvel (10):
      jump_label: Abstract jump_entry member accessors
      jump_label: Implement generic support for relative references
      arm64/kernel: jump_label: Switch to relative references
      x86: Add support for 64-bit place relative relocations
      x86/jump_label: Switch to jump_entry accessors
      x86/jump_table: Use relative references
      jump_label: Annotate entries that operate on __init code earlier
      jump_table: Move entries into ro_after_init region
      s390/vmlinux.lds: Move JUMP_TABLE_DATA into output section
      jump_label: Fix NULL dereference bug in __jump_label_mod_update()

Borislav Petkov (1):
      jump_label: Use static_key_linked() accessor

Heiko Carstens (1):
      s390/jump_label: Switch to relative references

Jann Horn (7):
      x86/kprobes: Refactor kprobes_fault() like kprobe_exceptions_notify()
      x86/kprobes: Inline kprobe_exceptions_notify() into do_general_protection()
      x86/kprobes: Stop calling fixup_exception() from kprobe_fault_handler()
      x86/extable: Introduce _ASM_EXTABLE_UA for uaccess fixups
      x86/fault: Plumb error code and fault address through to fault handlers
      x86/fault: BUG() when uaccess helpers fault on kernel addresses
      lkdtm: Test copy_to_user() on bad kernel pointer under KERNEL_DS

Lance Roy (1):
      futex: Replace spin_is_locked() with lockdep

Masahiro Yamada (1):
      x86/build: Remove unused CONFIG_AS_CRC32

Matthew Wilcox (1):
      locking/spinlocks: Remove an instruction from spin and write locks

Nadav Amit (10):
      kbuild/arch/xtensa: Define LINKER_SCRIPT for the linker script
      kbuild/Makefile: Prepare for using macros in inline assembly code to work around asm() related GCC inlining bugs
      x86/objtool: Use asm macros to work around GCC inlining bugs
      x86/refcount: Work around GCC inlining bug
      x86/alternatives: Macrofy lock prefixes to work around GCC inlining bugs
      x86/bug: Macrofy the BUG table section handling, to work around GCC inlining bugs
      x86/paravirt: Work around GCC inlining bugs when compiling paravirt ops
      x86/extable: Macrofy inline assembly code to work around GCC inlining bugs
      x86/cpufeature: Macrofy inline assembly code to work around GCC inlining bugs
      x86/jump-labels: Macrofy inline assembly code to work around GCC inlining bugs

Paul E. McKenney (2):
      tools/memory-model: Add litmus-test naming scheme
      tools/memory-model: Add more LKMM limitations

Peter Zijlstra (6):
      jump_label/lockdep: Assert we hold the hotplug lock for _cpuslocked() operations
      locking/lockdep, cpu/hotplug: Annotate AP thread
      locking/qspinlock: Re-order code
      locking/qspinlock: Rework some comments
      x86/asm: 'Simplify' GEN_*_RMWcc() macros
      locking/qspinlock, x86: Provide liveness guarantee

SeongJae Park (1):
      tools/memory-model: Fix a README typo

Steven Rostedt (VMware) (1):
      locking/rtmutex: Fix the preprocessor logic with normal #ifdef #else #endif

Waiman Long (11):
      locking/rwsem: Exit read lock slowpath if queue empty & no writer
      locking/rwsem: Make owner store task pointer of last owning reader
      locking/lockdep: Remove add_chain_cache_classes()
      locking/lockdep: Eliminate redundant IRQs check in __lock_acquire()
      locking/lockdep: Add a faster path in __lock_release()
      locking/lockdep: Make class->ops a percpu counter and move it under CONFIG_DEBUG_LOCKDEP=y
      locking/lockdep: Remove duplicated 'lock_class_ops' percpu array
      locking/qspinlock_stat: Count instances of nested lock slowpaths
      locking/pvqspinlock: Extend node size when pvqspinlock is configured
      locking/lockdep: Fix debug_locks off performance problem
      locking/lockdep: Make global debug_locks* variables read-mostly


 Documentation/locking/lockstat.txt                 |   2 +-
 Documentation/memory-barriers.txt                  |   3 +-
 Makefile                                           |   9 +-
 arch/Kconfig                                       |   3 +
 arch/arm64/Kconfig                                 |   1 +
 arch/arm64/include/asm/jump_label.h                |  38 ++---
 arch/arm64/kernel/jump_label.c                     |   6 +-
 arch/s390/Kconfig                                  |   1 +
 arch/s390/include/asm/jump_label.h                 |  40 ++---
 arch/s390/kernel/jump_label.c                      |  11 +-
 arch/s390/kernel/vmlinux.lds.S                     |   1 +
 arch/x86/Kconfig                                   |   1 +
 arch/x86/Makefile                                  |   8 +-
 arch/x86/configs/i386_defconfig                    |   1 +
 arch/x86/configs/x86_64_defconfig                  |   1 +
 arch/x86/entry/calling.h                           |   2 +-
 arch/x86/include/asm/alternative-asm.h             |  20 ++-
 arch/x86/include/asm/alternative.h                 |  11 +-
 arch/x86/include/asm/asm.h                         |  57 +++----
 arch/x86/include/asm/atomic.h                      |   8 +-
 arch/x86/include/asm/atomic64_64.h                 |   8 +-
 arch/x86/include/asm/bitops.h                      |   9 +-
 arch/x86/include/asm/bug.h                         |  98 ++++++-----
 arch/x86/include/asm/cpufeature.h                  |  82 +++++----
 arch/x86/include/asm/elf.h                         |   3 +-
 arch/x86/include/asm/extable.h                     |   3 +-
 arch/x86/include/asm/fpu/internal.h                |   2 +-
 arch/x86/include/asm/futex.h                       |   6 +-
 arch/x86/include/asm/jump_label.h                  |  80 ++-------
 arch/x86/include/asm/local.h                       |   8 +-
 arch/x86/include/asm/paravirt_types.h              |  56 +++----
 arch/x86/include/asm/preempt.h                     |   2 +-
 arch/x86/include/asm/ptrace.h                      |   2 +
 arch/x86/include/asm/qspinlock.h                   |  15 ++
 arch/x86/include/asm/refcount.h                    |  79 +++++----
 arch/x86/include/asm/rmwcc.h                       |  69 ++++----
 arch/x86/include/asm/uaccess.h                     |  22 +--
 arch/x86/kernel/cpu/mcheck/mce.c                   |   2 +-
 arch/x86/kernel/jump_label.c                       |  62 +++----
 arch/x86/kernel/kprobes/core.c                     |  38 -----
 arch/x86/kernel/macros.S                           |  16 ++
 arch/x86/kernel/module.c                           |   6 +
 arch/x86/kernel/traps.c                            |  16 +-
 arch/x86/lib/checksum_32.S                         |   4 +-
 arch/x86/lib/copy_user_64.S                        |  90 +++++-----
 arch/x86/lib/csum-copy_64.S                        |   8 +-
 arch/x86/lib/getuser.S                             |  12 +-
 arch/x86/lib/putuser.S                             |  10 +-
 arch/x86/lib/usercopy_32.c                         | 126 +++++++-------
 arch/x86/lib/usercopy_64.c                         |   4 +-
 arch/x86/mm/extable.c                              | 114 +++++++++++--
 arch/x86/mm/fault.c                                |  26 +--
 arch/x86/tools/relocs.c                            |  10 ++
 arch/x86/um/asm/elf.h                              |   3 +-
 arch/xtensa/kernel/Makefile                        |   4 +-
 drivers/misc/lkdtm/core.c                          |   1 +
 drivers/misc/lkdtm/lkdtm.h                         |   1 +
 drivers/misc/lkdtm/usercopy.c                      |  13 ++
 fs/namespace.c                                     |   2 +
 include/asm-generic/bug.h                          |   8 +-
 include/asm-generic/qrwlock.h                      |   7 +-
 include/asm-generic/qspinlock.h                    |  16 +-
 include/asm-generic/vmlinux.lds.h                  |  11 +-
 include/linux/compiler.h                           |  56 +++++--
 include/linux/debug_locks.h                        |   4 +-
 include/linux/jump_label.h                         |  65 ++++++-
 include/linux/lockdep.h                            |   7 +-
 include/linux/rwsem.h                              |   4 +-
 include/linux/sched.h                              |   6 +
 init/main.c                                        |   1 -
 kernel/cpu.c                                       |  28 ++++
 kernel/futex.c                                     |   4 +-
 kernel/jump_label.c                                | 107 ++++++------
 kernel/locking/lockdep.c                           | 116 ++++---------
 kernel/locking/lockdep_internals.h                 |  27 +++
 kernel/locking/lockdep_proc.c                      |   2 +-
 kernel/locking/qspinlock.c                         | 143 +++++++++++-----
 kernel/locking/qspinlock_paravirt.h                |   4 +-
 kernel/locking/qspinlock_stat.h                    |   6 +
 kernel/locking/rtmutex.c                           |   4 +-
 kernel/locking/rwsem-xadd.c                        |  15 +-
 kernel/locking/rwsem.c                             |   7 +-
 kernel/locking/rwsem.h                             |  95 ++++++++---
 kernel/module.c                                    |   9 +
 lib/debug_locks.c                                  |   6 +-
 mm/maccess.c                                       |   6 +
 scripts/Kbuild.include                             |   4 +-
 scripts/mod/Makefile                               |   2 +
 tools/memory-model/Documentation/explanation.txt   | 186 ++++++++++++++++-----
 tools/memory-model/Documentation/recipes.txt       |   2 +-
 tools/memory-model/README                          |  39 +++++
 tools/memory-model/linux-kernel.cat                |   8 +-
 .../ISA2+pooncelock+pooncelock+pombonce.litmus     |   7 +-
 tools/memory-model/litmus-tests/README             | 104 +++++++++++-
 tools/objtool/special.c                            |   4 +-
 95 files changed, 1522 insertions(+), 934 deletions(-)
 create mode 100644 arch/x86/kernel/macros.S


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-10-23 10:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-23 10:26 [GIT PULL] locking and misc x86 updates for v4.20 Ingo Molnar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.