All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>, Waiman Long <longman@redhat.com>,
	Boqun Feng <boqun.feng@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [GIT PULL] Locking changes for v6.5
Date: Tue, 27 Jun 2023 12:55:31 +0200	[thread overview]
Message-ID: <ZJrAI6cgvy/tZSj2@gmail.com> (raw)

Linus,

Please pull the latest locking tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-2023-06-27

   # HEAD: b33eb50a92b0a298fa8a6ac350e741c3ec100f6d locking/atomic: scripts: fix ${atomic}_dec_if_positive() kerneldoc

Locking changes for v6.5:

- Introduce cmpxchg128() -- aka. the demise of cmpxchg_double().

  The cmpxchg128() family of functions is basically & functionally
  the same as cmpxchg_double(), but with a saner interface: instead
  of a 6-parameter horror that forced u128 - u64/u64-halves layout
  details on the interface and exposed users to complexity,
  fragility & bugs, use a natural 3-parameter interface with u128 types.

- Restructure the generated atomic headers, and add
  kerneldoc comments for all of the generic atomic{,64,_long}_t
  operations. Generated definitions are much cleaner now,
  and come with documentation.

- Implement lock_set_cmp_fn() on lockdep, for defining an ordering
  when taking multiple locks of the same type. This gets rid of
  one use of lockdep_set_novalidate_class() in the bcache code.

- Fix raw_cpu_generic_try_cmpxchg() bug due to an unintended
  variable shadowing generating garbage code on Clang on certain
  ARM builds.

 Thanks,

	Ingo

------------------>
Kent Overstreet (2):
      lockdep: Add lock_set_cmp_fn() annotation
      bcache: Convert to lock_cmp_fn

Mark Rutland (27):
      locking/atomic: arm: fix sync ops
      locking/atomic: remove fallback comments
      locking/atomic: hexagon: remove redundant arch_atomic_cmpxchg
      locking/atomic: make atomic*_{cmp,}xchg optional
      locking/atomic: arc: add preprocessor symbols
      locking/atomic: arm: add preprocessor symbols
      locking/atomic: hexagon: add preprocessor symbols
      locking/atomic: m68k: add preprocessor symbols
      locking/atomic: parisc: add preprocessor symbols
      locking/atomic: sh: add preprocessor symbols
      locking/atomic: sparc: add preprocessor symbols
      locking/atomic: x86: add preprocessor symbols
      locking/atomic: xtensa: add preprocessor symbols
      locking/atomic: scripts: remove bogus order parameter
      locking/atomic: scripts: remove leftover "${mult}"
      locking/atomic: scripts: factor out order template generation
      locking/atomic: scripts: add trivial raw_atomic*_<op>()
      locking/atomic: treewide: use raw_atomic*_<op>()
      locking/atomic: scripts: build raw_atomic_long*() directly
      locking/atomic: scripts: restructure fallback ifdeffery
      locking/atomic: scripts: split pfx/name/sfx/order
      locking/atomic: scripts: simplify raw_atomic_long*() definitions
      locking/atomic: scripts: simplify raw_atomic*() definitions
      docs: scripts: kernel-doc: accept bitwise negation like ~@var
      locking/atomic: scripts: generate kerneldoc comments
      locking/atomic: treewide: delete arch_atomic_*() kerneldoc
      locking/atomic: scripts: fix ${atomic}_dec_if_positive() kerneldoc

Nathan Chancellor (1):
      percpu: Fix self-assignment of __old in raw_cpu_generic_try_cmpxchg()

Paul E. McKenney (1):
      locking/atomic: docs: Add atomic operations to the driver basic API documentation

Peter Zijlstra (12):
      cyrpto/b128ops: Remove struct u128
      types: Introduce [us]128
      arch: Introduce arch_{,try_}_cmpxchg128{,_local}()
      instrumentation: Wire up cmpxchg128()
      percpu: Add {raw,this}_cpu_try_cmpxchg()
      percpu: Wire up cmpxchg128
      parisc: Raise minimal GCC version
      x86,amd_iommu: Replace cmpxchg_double()
      x86,intel_iommu: Replace cmpxchg_double()
      slub: Replace cmpxchg_double()
      arch: Remove cmpxchg_double
      s390/cpum_sf: Convert to cmpxchg128()


 Documentation/core-api/this_cpu_ops.rst      |    2 -
 Documentation/driver-api/basics.rst          |    8 +-
 arch/alpha/include/asm/atomic.h              |   35 -
 arch/arc/include/asm/atomic-spinlock.h       |    9 +
 arch/arc/include/asm/atomic.h                |   24 -
 arch/arc/include/asm/atomic64-arcv2.h        |   19 +-
 arch/arm/include/asm/assembler.h             |   17 +
 arch/arm/include/asm/atomic.h                |   15 +-
 arch/arm/include/asm/sync_bitops.h           |   29 +-
 arch/arm/lib/bitops.h                        |   14 +-
 arch/arm/lib/testchangebit.S                 |    4 +
 arch/arm/lib/testclearbit.S                  |    4 +
 arch/arm/lib/testsetbit.S                    |    4 +
 arch/arm64/include/asm/atomic.h              |   28 -
 arch/arm64/include/asm/atomic_ll_sc.h        |   56 +-
 arch/arm64/include/asm/atomic_lse.h          |   39 +-
 arch/arm64/include/asm/cmpxchg.h             |   48 +-
 arch/arm64/include/asm/percpu.h              |   30 +-
 arch/csky/include/asm/atomic.h               |   35 -
 arch/hexagon/include/asm/atomic.h            |   69 +-
 arch/ia64/include/asm/atomic.h               |    7 -
 arch/loongarch/include/asm/atomic.h          |   56 -
 arch/m68k/include/asm/atomic.h               |   18 +-
 arch/mips/include/asm/atomic.h               |   11 -
 arch/openrisc/include/asm/atomic.h           |    3 -
 arch/parisc/include/asm/atomic.h             |   27 +-
 arch/powerpc/include/asm/atomic.h            |   24 -
 arch/powerpc/kernel/smp.c                    |   12 +-
 arch/riscv/include/asm/atomic.h              |   72 -
 arch/s390/include/asm/cmpxchg.h              |   32 +-
 arch/s390/include/asm/cpu_mf.h               |    2 +-
 arch/s390/include/asm/percpu.h               |   34 +-
 arch/s390/kernel/perf_cpum_sf.c              |   16 +-
 arch/sh/include/asm/atomic-grb.h             |    9 +
 arch/sh/include/asm/atomic-irq.h             |    9 +
 arch/sh/include/asm/atomic-llsc.h            |    9 +
 arch/sh/include/asm/atomic.h                 |    3 -
 arch/sparc/include/asm/atomic_32.h           |   30 +-
 arch/sparc/include/asm/atomic_64.h           |   29 +-
 arch/x86/include/asm/atomic.h                |   87 -
 arch/x86/include/asm/atomic64_32.h           |   76 -
 arch/x86/include/asm/atomic64_64.h           |   81 -
 arch/x86/include/asm/cmpxchg.h               |   25 -
 arch/x86/include/asm/cmpxchg_32.h            |    2 +-
 arch/x86/include/asm/cmpxchg_64.h            |   67 +-
 arch/x86/include/asm/percpu.h                |  102 +-
 arch/x86/kernel/alternative.c                |    4 +-
 arch/x86/kernel/cpu/mce/core.c               |   16 +-
 arch/x86/kernel/nmi.c                        |    2 +-
 arch/x86/kernel/pvclock.c                    |    4 +-
 arch/x86/kvm/x86.c                           |    2 +-
 arch/x86/lib/Makefile                        |    3 +-
 arch/x86/lib/cmpxchg16b_emu.S                |   43 +-
 arch/x86/lib/cmpxchg8b_emu.S                 |   67 +-
 arch/xtensa/include/asm/atomic.h             |   12 +-
 drivers/iommu/amd/amd_iommu_types.h          |    9 +-
 drivers/iommu/amd/iommu.c                    |   10 +-
 drivers/iommu/intel/irq_remapping.c          |    8 +-
 drivers/md/bcache/btree.c                    |   23 +-
 drivers/md/bcache/btree.h                    |    4 +-
 include/asm-generic/atomic.h                 |    3 -
 include/asm-generic/bitops/atomic.h          |   12 +-
 include/asm-generic/bitops/lock.h            |    8 +-
 include/asm-generic/percpu.h                 |  209 +-
 include/crypto/b128ops.h                     |   14 +-
 include/linux/atomic/atomic-arch-fallback.h  | 5607 +++++++++++++++++---------
 include/linux/atomic/atomic-instrumented.h   | 3459 ++++++++++++++--
 include/linux/atomic/atomic-long.h           | 2122 ++++++----
 include/linux/context_tracking.h             |    4 +-
 include/linux/context_tracking_state.h       |    2 +-
 include/linux/cpumask.h                      |    2 +-
 include/linux/dmar.h                         |  117 +-
 include/linux/jump_label.h                   |    2 +-
 include/linux/lockdep.h                      |    8 +
 include/linux/lockdep_types.h                |    8 +
 include/linux/percpu-defs.h                  |   45 +-
 include/linux/slub_def.h                     |   12 +-
 include/linux/types.h                        |    5 +
 include/uapi/linux/types.h                   |    4 +
 kernel/context_tracking.c                    |   12 +-
 kernel/locking/lockdep.c                     |  118 +-
 kernel/sched/clock.c                         |    2 +-
 lib/crypto/curve25519-hacl64.c               |    2 -
 lib/crypto/poly1305-donna64.c                |    2 -
 mm/slab.h                                    |   53 +-
 mm/slub.c                                    |  139 +-
 scripts/atomic/atomic-tbl.sh                 |  112 +-
 scripts/atomic/atomics.tbl                   |    2 +-
 scripts/atomic/fallbacks/acquire             |    4 -
 scripts/atomic/fallbacks/add_negative        |   14 +-
 scripts/atomic/fallbacks/add_unless          |   15 +-
 scripts/atomic/fallbacks/andnot              |    6 +-
 scripts/atomic/fallbacks/cmpxchg             |    3 +
 scripts/atomic/fallbacks/dec                 |    6 +-
 scripts/atomic/fallbacks/dec_and_test        |   14 +-
 scripts/atomic/fallbacks/dec_if_positive     |    8 +-
 scripts/atomic/fallbacks/dec_unless_positive |    8 +-
 scripts/atomic/fallbacks/fence               |    4 -
 scripts/atomic/fallbacks/fetch_add_unless    |   17 +-
 scripts/atomic/fallbacks/inc                 |    6 +-
 scripts/atomic/fallbacks/inc_and_test        |   14 +-
 scripts/atomic/fallbacks/inc_not_zero        |   13 +-
 scripts/atomic/fallbacks/inc_unless_negative |    8 +-
 scripts/atomic/fallbacks/read_acquire        |    6 +-
 scripts/atomic/fallbacks/release             |    4 -
 scripts/atomic/fallbacks/set_release         |    6 +-
 scripts/atomic/fallbacks/sub_and_test        |   15 +-
 scripts/atomic/fallbacks/try_cmpxchg         |    6 +-
 scripts/atomic/fallbacks/xchg                |    3 +
 scripts/atomic/gen-atomic-fallback.sh        |  276 +-
 scripts/atomic/gen-atomic-instrumented.sh    |   42 +-
 scripts/atomic/gen-atomic-long.sh            |   38 +-
 scripts/atomic/kerneldoc/add                 |   13 +
 scripts/atomic/kerneldoc/add_negative        |   13 +
 scripts/atomic/kerneldoc/add_unless          |   18 +
 scripts/atomic/kerneldoc/and                 |   13 +
 scripts/atomic/kerneldoc/andnot              |   13 +
 scripts/atomic/kerneldoc/cmpxchg             |   14 +
 scripts/atomic/kerneldoc/dec                 |   12 +
 scripts/atomic/kerneldoc/dec_and_test        |   12 +
 scripts/atomic/kerneldoc/dec_if_positive     |   12 +
 scripts/atomic/kerneldoc/dec_unless_positive |   12 +
 scripts/atomic/kerneldoc/inc                 |   12 +
 scripts/atomic/kerneldoc/inc_and_test        |   12 +
 scripts/atomic/kerneldoc/inc_not_zero        |   12 +
 scripts/atomic/kerneldoc/inc_unless_negative |   12 +
 scripts/atomic/kerneldoc/or                  |   13 +
 scripts/atomic/kerneldoc/read                |   12 +
 scripts/atomic/kerneldoc/set                 |   13 +
 scripts/atomic/kerneldoc/sub                 |   13 +
 scripts/atomic/kerneldoc/sub_and_test        |   13 +
 scripts/atomic/kerneldoc/try_cmpxchg         |   15 +
 scripts/atomic/kerneldoc/xchg                |   13 +
 scripts/atomic/kerneldoc/xor                 |   13 +
 scripts/kernel-doc                           |    2 +-
 scripts/min-tool-version.sh                  |    6 +-
 136 files changed, 10107 insertions(+), 4346 deletions(-)
 create mode 100644 scripts/atomic/fallbacks/cmpxchg
 create mode 100644 scripts/atomic/fallbacks/xchg
 create mode 100644 scripts/atomic/kerneldoc/add
 create mode 100644 scripts/atomic/kerneldoc/add_negative
 create mode 100644 scripts/atomic/kerneldoc/add_unless
 create mode 100644 scripts/atomic/kerneldoc/and
 create mode 100644 scripts/atomic/kerneldoc/andnot
 create mode 100644 scripts/atomic/kerneldoc/cmpxchg
 create mode 100644 scripts/atomic/kerneldoc/dec
 create mode 100644 scripts/atomic/kerneldoc/dec_and_test
 create mode 100644 scripts/atomic/kerneldoc/dec_if_positive
 create mode 100644 scripts/atomic/kerneldoc/dec_unless_positive
 create mode 100644 scripts/atomic/kerneldoc/inc
 create mode 100644 scripts/atomic/kerneldoc/inc_and_test
 create mode 100644 scripts/atomic/kerneldoc/inc_not_zero
 create mode 100644 scripts/atomic/kerneldoc/inc_unless_negative
 create mode 100644 scripts/atomic/kerneldoc/or
 create mode 100644 scripts/atomic/kerneldoc/read
 create mode 100644 scripts/atomic/kerneldoc/set
 create mode 100644 scripts/atomic/kerneldoc/sub
 create mode 100644 scripts/atomic/kerneldoc/sub_and_test
 create mode 100644 scripts/atomic/kerneldoc/try_cmpxchg
 create mode 100644 scripts/atomic/kerneldoc/xchg
 create mode 100644 scripts/atomic/kerneldoc/xor

             reply	other threads:[~2023-06-27 10:55 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-27 10:55 Ingo Molnar [this message]
2023-06-27 22:26 ` [GIT PULL] Locking changes for v6.5 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZJrAI6cgvy/tZSj2@gmail.com \
    --to=mingo@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=boqun.feng@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.