[PATCH v7 0/4] Align atomic storage

Finn Thain posted 4 patches 3 weeks, 3 days ago
include/asm-generic/atomic64.h   |  2 +-
include/asm-generic/rqspinlock.h |  2 +-
include/linux/instrumented.h     | 17 +++++++++++++++++
include/linux/types.h            |  2 +-
kernel/bpf/rqspinlock.c          |  1 -
lib/Kconfig.debug                | 18 ++++++++++++++++++
6 files changed, 38 insertions(+), 4 deletions(-)
[PATCH v7 0/4] Align atomic storage
Posted by Finn Thain 3 weeks, 3 days ago
This series adds the __aligned attribute to atomic_t and atomic64_t
definitions in include/linux and include/asm-generic (respectively)
to get natural alignment of both types on csky, m68k, microblaze,
nios2, openrisc and sh.

This series also adds Kconfig options to enable a new run-time warning
to help reveal misaligned atomic accesses on platforms which don't
trap that.

The performance impact is expected to vary across platforms and workloads.
The measurements I made on m68k show that some workloads run faster and
others slower.

---

Changed since v6
 - Test for __DISABLE_EXPORTS macro instead of __DISABLE_BUG_TABLE macro.

Changed since v5:
 - Added acked-by and revewed-by tags.
 - Added a new macro to inhibit emission of __bug_table section, for the
 benefit of pre-boot code like the EFI stub loader.

Changed since v4:
 - Dropped parisc header file patch as it's been merged already.
 - Submitted as PATCH instead of RFC.

Changed since v3:
 - Rebased on v6.17.
 - New patch to resolve header dependency issue on parisc.
 - Dropped documentation patch.

Changed since v2:
 - Specify natural alignment for atomic64_t.
 - CONFIG_DEBUG_ATOMIC checks for natural alignment again.
 - New patch to add weakened alignment check.
 - New patch for explicit alignment in BPF header.

---

Finn Thain (3):
  bpf: Explicitly align bpf_res_spin_lock
  atomic: Specify alignment for atomic_t and atomic64_t
  atomic: Add option for weaker alignment check

Peter Zijlstra (1):
  atomic: Add alignment check to instrumented atomic operations

 include/asm-generic/atomic64.h   |  2 +-
 include/asm-generic/rqspinlock.h |  2 +-
 include/linux/instrumented.h     | 17 +++++++++++++++++
 include/linux/types.h            |  2 +-
 kernel/bpf/rqspinlock.c          |  1 -
 lib/Kconfig.debug                | 18 ++++++++++++++++++
 6 files changed, 38 insertions(+), 4 deletions(-)

-- 
2.49.1