linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: mingo@kernel.org
Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	will.deacon@arm.com, mark.rutland@arm.com, snitzer@redhat.com,
	thor.thayer@linux.intel.com, viro@zeniv.linux.org.uk,
	davem@davemloft.net, shuah@kernel.org, mpe@ellerman.id.au,
	tj@kernel.org
Subject: [GIT PULL de-alpha] Make core code not need to know about Alpha for v4.15
Date: Mon, 23 Oct 2017 14:04:08 -0700	[thread overview]
Message-ID: <20171023210408.GA2930@linux.vnet.ibm.com> (raw)

Hello, Ingo,

This series is a first step towards making the core kernel no longer
need to consider DEC Alpha as a special case.  This is accomplished
by two sets of patches, followed by a Coccinelle script:

1.	Patches 1/19 through 15/19 in the following patches, which
	change non-Coccinelle-susceptible instances of ACCESS_ONCE()
	to either READ_ONCE() or WRITE_ONCE(), as appropriate.	Most of
	these patches are courtesy of Mark Rutland.

2.	Patches 16/19 through 18/19 in the following patches, which
	add smp_read_barrier_depends() to READ_ONCE() and to Alpha's
	value-returning _release and _relaxed atomic read-modify-write
	operations, while also removing lockless_dereference() in favor
	of the modified READ_ONCE().

3.	A patch generated by Coccinelle (script in commit log) that
	converts ACCESS_ONCE() to either READ_ONCE() or WRITE_ONCE(),
	as appropriate.  Of course, this patch should not be applied
	as-is to mainline, instead, the Coccinelle script should be
	re-run in order to account for any changes between now and
	the time of merging into mainline.

A later series (most likely targeted to v4.16) will remove instances of
smp_read_barrier_depends() that are made redundant by this series, that
is to say, almost all of them.

These changes are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/alpha-cocci

for you to fetch changes up to d19fa5187a69bd7685e9c7452ce9e339b1b079fc:

  COCCINELLE: treewide: kill off ACCESS_ONCE() (2017-10-21 12:52:09 -0700)

----------------------------------------------------------------
Mark Rutland (14):
      dm integrity: Kill off ACCESS_ONCE()
      EDAC, altera: Kill off ACCESS_ONCE()
      firmware/ivc: Kill off ACCESS_ONCE()
      fs: dcache: Kill off ACCESS_ONCE()
      fs: ncpfs: Kill off ACCESS_ONCE()
      media: dvb_ringbuffer: Kill off ACCESS_ONCE()
      net: netlink/netfilter: Kill off ACCESS_ONCE()
      net/ipv4/tcp_input.c: Kill off ACCESS_ONCE()
      net: average: Kill off ACCESS_ONCE()
      samples: mic/mpssd/mpssd.c: Kill off ACCESS_ONCE()
      selftests/powerpc: Kill off ACCESS_ONCE()
      workqueue: Kill off ACCESS_ONCE()
      rcutorture: formal: Prepare for ACCESS_ONCE() removal
      COCCINELLE: treewide: kill off ACCESS_ONCE()

Paul E. McKenney (3):
      doc: filesystems: Kill off ACCESS_ONCE()
      mm: Kill off ACCESS_ONCE()
      Merge commit 'c78bcafd0d3b3835f23369aea7ed3686f25750c2'; commit '88f35a0d24b00b80538ae7083cfcab8eb00db3cb' into HEAD

Will Deacon (3):
      linux/compiler.h: Split into compiler.h and compiler-types.h
      locking/barriers: Kill lockless_dereference
      alpha: atomics: Add smp_read_barrier_depends() to release/relaxed atomics

 Documentation/filesystems/path-lookup.md           |   6 +-
 Documentation/memory-barriers.txt                  |  12 -
 .../translations/ko_KR/memory-barriers.txt         |  12 -
 arch/alpha/include/asm/atomic.h                    |  13 +
 arch/arc/kernel/smp.c                              |   2 +-
 arch/arm/include/asm/ptrace.h                      |   3 +-
 arch/arm/include/asm/spinlock.h                    |   6 +-
 arch/arm/mach-tegra/cpuidle-tegra20.c              |   2 +-
 arch/arm/vdso/vgettimeofday.c                      |   2 +-
 arch/ia64/include/asm/spinlock.h                   |   8 +-
 arch/mips/include/asm/vdso.h                       |   2 +-
 arch/mips/kernel/pm-cps.c                          |   2 +-
 arch/mn10300/kernel/mn10300-serial.c               |   4 +-
 arch/parisc/include/asm/atomic.h                   |   2 +-
 arch/powerpc/platforms/powernv/opal-msglog.c       |   2 +-
 arch/s390/include/asm/spinlock.h                   |   6 +-
 arch/s390/lib/spinlock.c                           |  16 +-
 arch/sparc/include/asm/atomic_32.h                 |   2 +-
 arch/sparc/include/asm/ptrace.h                    |   1 +
 arch/tile/gxio/dma_queue.c                         |   4 +-
 arch/tile/include/gxio/dma_queue.h                 |   2 +-
 arch/tile/kernel/ptrace.c                          |   2 +-
 arch/um/include/shared/init.h                      |   2 +-
 arch/x86/entry/common.c                            |   2 +-
 arch/x86/entry/vdso/vclock_gettime.c               |   2 +-
 arch/x86/events/core.c                             |   4 +-
 arch/x86/include/asm/mmu_context.h                 |   4 +-
 arch/x86/include/asm/vgtod.h                       |   2 +-
 arch/x86/kernel/espfix_64.c                        |   6 +-
 arch/x86/kernel/ldt.c                              |   2 +-
 arch/x86/kernel/nmi.c                              |   2 +-
 arch/x86/kvm/mmu.c                                 |   4 +-
 arch/x86/kvm/page_track.c                          |   2 +-
 arch/x86/xen/p2m.c                                 |   2 +-
 arch/xtensa/platforms/xtfpga/lcd.c                 |  14 +-
 block/blk-wbt.c                                    |   2 +-
 drivers/base/core.c                                |   2 +-
 drivers/base/power/runtime.c                       |   4 +-
 drivers/char/random.c                              |   4 +-
 drivers/clocksource/bcm2835_timer.c                |   2 +-
 drivers/crypto/caam/jr.c                           |   4 +-
 drivers/crypto/nx/nx-842-powernv.c                 |   2 +-
 drivers/edac/altera_edac.c                         |  10 +-
 drivers/firewire/ohci.c                            |  10 +-
 drivers/firmware/tegra/ivc.c                       |  24 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c          |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c            |   4 +-
 drivers/gpu/drm/amd/scheduler/gpu_scheduler.c      |   2 +-
 drivers/gpu/drm/radeon/radeon_gem.c                |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c            |   2 +-
 drivers/infiniband/hw/hfi1/file_ops.c              |   2 +-
 drivers/infiniband/hw/hfi1/pio.c                   |   6 +-
 drivers/infiniband/hw/hfi1/ruc.c                   |   2 +-
 drivers/infiniband/hw/hfi1/sdma.c                  |   8 +-
 drivers/infiniband/hw/hfi1/sdma.h                  |   2 +-
 drivers/infiniband/hw/hfi1/uc.c                    |   4 +-
 drivers/infiniband/hw/hfi1/ud.c                    |   4 +-
 drivers/infiniband/hw/hfi1/user_sdma.c             |   8 +-
 drivers/infiniband/hw/qib/qib_ruc.c                |   2 +-
 drivers/infiniband/hw/qib/qib_uc.c                 |   4 +-
 drivers/infiniband/hw/qib/qib_ud.c                 |   4 +-
 drivers/infiniband/sw/rdmavt/qp.c                  |   6 +-
 drivers/input/misc/regulator-haptic.c              |   2 +-
 drivers/md/dm-bufio.c                              |  10 +-
 drivers/md/dm-integrity.c                          |  15 +-
 drivers/md/dm-kcopyd.c                             |   4 +-
 drivers/md/dm-mpath.c                              |  20 +-
 drivers/md/dm-stats.c                              |  36 +--
 drivers/md/dm-switch.c                             |   2 +-
 drivers/md/dm-thin.c                               |   2 +-
 drivers/md/dm-verity-target.c                      |   2 +-
 drivers/md/dm.c                                    |   4 +-
 drivers/md/md.c                                    |   2 +-
 drivers/md/raid5.c                                 |   2 +-
 drivers/media/dvb-core/dvb_ringbuffer.c            |   8 +-
 drivers/misc/mic/scif/scif_rb.c                    |   8 +-
 drivers/misc/mic/scif/scif_rma_list.c              |   2 +-
 drivers/net/bonding/bond_alb.c                     |   2 +-
 drivers/net/bonding/bond_main.c                    |   6 +-
 drivers/net/ethernet/chelsio/cxgb4/sge.c           |   4 +-
 drivers/net/ethernet/emulex/benet/be_main.c        |   2 +-
 drivers/net/ethernet/hisilicon/hip04_eth.c         |   4 +-
 drivers/net/ethernet/intel/i40e/i40e_debugfs.c     |   4 +-
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c     |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c        |   4 +-
 drivers/net/ethernet/intel/i40e/i40e_ptp.c         |   4 +-
 drivers/net/ethernet/intel/igb/e1000_regs.h        |   2 +-
 drivers/net/ethernet/intel/igb/igb_main.c          |   2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.h    |   4 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |   8 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c       |   4 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |   2 +-
 drivers/net/ethernet/intel/ixgbevf/vf.h            |   2 +-
 drivers/net/ethernet/mellanox/mlx4/en_tx.c         |  12 +-
 drivers/net/ethernet/neterion/vxge/vxge-main.c     |   2 +-
 drivers/net/ethernet/sfc/ef10.c                    |  10 +-
 drivers/net/ethernet/sfc/efx.c                     |   4 +-
 drivers/net/ethernet/sfc/falcon/efx.c              |   4 +-
 drivers/net/ethernet/sfc/falcon/falcon.c           |   4 +-
 drivers/net/ethernet/sfc/falcon/farch.c            |   8 +-
 drivers/net/ethernet/sfc/falcon/nic.h              |   6 +-
 drivers/net/ethernet/sfc/falcon/tx.c               |   6 +-
 drivers/net/ethernet/sfc/farch.c                   |   8 +-
 drivers/net/ethernet/sfc/nic.h                     |   6 +-
 drivers/net/ethernet/sfc/ptp.c                     |  10 +-
 drivers/net/ethernet/sfc/tx.c                      |   6 +-
 drivers/net/ethernet/sun/niu.c                     |   4 +-
 drivers/net/tap.c                                  |   2 +-
 drivers/net/tun.c                                  |   4 +-
 drivers/net/wireless/ath/ath5k/desc.c              |   8 +-
 .../wireless/broadcom/brcm80211/brcmfmac/sdio.c    |   2 +-
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c       |   2 +-
 drivers/net/wireless/intel/iwlwifi/mvm/tx.c        |   4 +-
 drivers/net/wireless/intel/iwlwifi/pcie/rx.c       |   2 +-
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c    |  10 +-
 drivers/net/wireless/mac80211_hwsim.c              |   4 +-
 drivers/scsi/qla2xxx/qla_target.c                  |   2 +-
 drivers/target/target_core_user.c                  |   2 +-
 drivers/usb/class/cdc-wdm.c                        |   2 +-
 drivers/usb/core/devio.c                           |   2 +-
 drivers/usb/core/sysfs.c                           |   4 +-
 drivers/usb/gadget/udc/gr_udc.c                    |   4 +-
 drivers/usb/host/ohci-hcd.c                        |   2 +-
 drivers/usb/host/uhci-hcd.h                        |   4 +-
 drivers/vfio/vfio.c                                |   2 +-
 drivers/vhost/scsi.c                               |   2 +-
 fs/aio.c                                           |   2 +-
 fs/buffer.c                                        |   3 +-
 fs/crypto/keyinfo.c                                |   2 +-
 fs/dcache.c                                        |  22 +-
 fs/direct-io.c                                     |   2 +-
 fs/exec.c                                          |   2 +-
 fs/fcntl.c                                         |   2 +-
 fs/fs_pin.c                                        |   4 +-
 fs/fuse/dev.c                                      |   2 +-
 fs/inode.c                                         |   2 +-
 fs/namei.c                                         |   4 +-
 fs/namespace.c                                     |   2 +-
 fs/ncpfs/dir.c                                     |   9 -
 fs/nfs/dir.c                                       |   8 +-
 fs/overlayfs/ovl_entry.h                           |   2 +-
 fs/overlayfs/readdir.c                             |   2 +-
 fs/proc/array.c                                    |   2 +-
 fs/proc_namespace.c                                |   2 +-
 fs/splice.c                                        |   2 +-
 fs/userfaultfd.c                                   |   8 +-
 fs/xfs/xfs_log_priv.h                              |   4 +-
 include/linux/average.h                            |  10 +-
 include/linux/bitops.h                             |   4 +-
 include/linux/compiler-clang.h                     |   2 +-
 include/linux/compiler-gcc.h                       |   2 +-
 include/linux/compiler-intel.h                     |   2 +-
 include/linux/compiler-types.h                     | 274 ++++++++++++++++++++
 include/linux/compiler.h                           | 286 +--------------------
 include/linux/dcache.h                             |   4 +-
 include/linux/dynamic_queue_limits.h               |   2 +-
 include/linux/genetlink.h                          |   2 +-
 include/linux/huge_mm.h                            |   2 +-
 include/linux/if_team.h                            |   2 +-
 include/linux/linkage.h                            |   2 +-
 include/linux/llist.h                              |   2 +-
 include/linux/netfilter/nfnetlink.h                |   2 +-
 include/linux/pm_runtime.h                         |   2 +-
 include/linux/rculist.h                            |   4 +-
 include/linux/rcupdate.h                           |   4 +-
 include/linux/rtnetlink.h                          |   2 +-
 include/net/ip_vs.h                                |   6 +-
 include/net/netfilter/nf_tables.h                  |   4 +-
 include/uapi/linux/stddef.h                        |   2 +-
 kernel/acct.c                                      |   4 +-
 kernel/events/core.c                               |  10 +-
 kernel/events/ring_buffer.c                        |   2 +-
 kernel/exit.c                                      |   2 +-
 kernel/seccomp.c                                   |   2 +-
 kernel/task_work.c                                 |   2 +-
 kernel/trace/ring_buffer.c                         |   2 +-
 kernel/trace/trace.h                               |   2 +-
 kernel/trace/trace_stack.c                         |   2 +-
 kernel/user_namespace.c                            |   2 +-
 kernel/workqueue.c                                 |   4 +-
 lib/assoc_array.c                                  |  20 +-
 lib/dynamic_queue_limits.c                         |   2 +-
 lib/llist.c                                        |   2 +-
 lib/vsprintf.c                                     |   4 +-
 mm/huge_memory.c                                   |   2 +-
 mm/memory.c                                        |   6 +-
 mm/slab.h                                          |   2 +-
 net/core/dev.c                                     |   2 +-
 net/core/pktgen.c                                  |   2 +-
 net/ipv4/inet_fragment.c                           |   2 +-
 net/ipv4/route.c                                   |   2 +-
 net/ipv4/tcp_input.c                               |   6 +-
 net/ipv4/tcp_output.c                              |   2 +-
 net/ipv4/udp.c                                     |   4 +-
 net/ipv6/ip6_tunnel.c                              |   8 +-
 net/ipv6/udp.c                                     |   4 +-
 net/llc/llc_input.c                                |   4 +-
 net/mac80211/sta_info.c                            |   2 +-
 net/netfilter/ipvs/ip_vs_sync.c                    |   2 +-
 net/netfilter/nfnetlink_queue.c                    |   4 +-
 net/netlabel/netlabel_calipso.c                    |   2 +-
 net/wireless/nl80211.c                             |   2 +-
 samples/mic/mpssd/mpssd.c                          |   6 +-
 scripts/headers_install.sh                         |   2 +-
 sound/firewire/amdtp-am824.c                       |   6 +-
 sound/firewire/amdtp-stream.c                      |  23 +-
 sound/firewire/amdtp-stream.h                      |   2 +-
 sound/firewire/digi00x/amdtp-dot.c                 |   6 +-
 sound/firewire/fireface/amdtp-ff.c                 |   4 +-
 sound/firewire/fireface/ff-midi.c                  |  10 +-
 sound/firewire/fireface/ff-transaction.c           |   8 +-
 sound/firewire/isight.c                            |  18 +-
 sound/firewire/motu/amdtp-motu.c                   |   4 +-
 sound/firewire/oxfw/oxfw-scs1x.c                   |  12 +-
 sound/firewire/tascam/amdtp-tascam.c               |   4 +-
 sound/firewire/tascam/tascam-transaction.c         |   6 +-
 sound/soc/xtensa/xtfpga-i2s.c                      |   6 +-
 sound/usb/bcd2000/bcd2000.c                        |   4 +-
 tools/arch/x86/include/asm/atomic.h                |   2 +-
 tools/include/asm-generic/atomic-gcc.h             |   2 +-
 tools/perf/util/auxtrace.h                         |   4 +-
 tools/perf/util/evlist.h                           |   2 +-
 tools/perf/util/session.h                          |   2 +-
 tools/testing/selftests/powerpc/dscr/dscr.h        |   2 +-
 .../selftests/powerpc/dscr/dscr_default_test.c     |   2 +-
 .../rcutorture/formal/srcu-cbmc/src/barriers.h     |   5 +-
 virt/kvm/kvm_main.c                                |   2 +-
 227 files changed, 786 insertions(+), 808 deletions(-)
 create mode 100644 include/linux/compiler-types.h

             reply	other threads:[~2017-10-23 21:04 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-23 21:04 Paul E. McKenney [this message]
2017-10-23 21:07 ` [PATCH 01/19] dm integrity: Kill off ACCESS_ONCE() Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 02/19] EDAC, altera: " Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 03/19] firmware/ivc: " Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 04/19] fs: dcache: " Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 05/19] fs: ncpfs: " Paul E. McKenney
2017-10-23 21:07 ` [PATCH 06/19] media: dvb_ringbuffer: " Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 07/19] net: netlink/netfilter: " Paul E. McKenney
2017-10-23 21:07 ` [PATCH 08/19] net/ipv4/tcp_input.c: " Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 09/19] net: average: " Paul E. McKenney
2017-10-24  5:58   ` Johannes Berg
2017-10-24  5:58     ` Johannes Berg
2017-10-24  9:34     ` Ingo Molnar
2017-10-24  9:34       ` Ingo Molnar
2017-10-24 13:49       ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 10/19] samples: mic/mpssd/mpssd.c: " Paul E. McKenney
2017-10-23 21:07 ` [PATCH 11/19] selftests/powerpc: " Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-23 21:07 ` [PATCH 12/19] workqueue: " Paul E. McKenney
2017-10-23 21:07 ` [PATCH 13/19] rcutorture: formal: Prepare for ACCESS_ONCE() removal Paul E. McKenney
2017-10-23 21:07 ` [PATCH 14/19] doc: filesystems: Kill off ACCESS_ONCE() Paul E. McKenney
2017-10-23 21:07 ` [PATCH 15/19] mm: " Paul E. McKenney
2017-10-23 21:07 ` [PATCH 16/19] linux/compiler.h: Split into compiler.h and compiler-types.h Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-24  9:25   ` Ingo Molnar
2017-10-24  9:30     ` Will Deacon
2017-10-24  9:30       ` Will Deacon
2017-10-24  9:52       ` Ingo Molnar
2017-10-24  9:52         ` Ingo Molnar
2017-10-23 21:07 ` [PATCH 17/19] locking/barriers: Kill lockless_dereference Paul E. McKenney
2017-10-23 21:07   ` Paul E. McKenney
2017-10-24  9:31   ` Ingo Molnar
2017-10-24  9:31     ` Ingo Molnar
2017-10-24  9:44     ` Will Deacon
2017-10-24  9:44       ` Will Deacon
2017-10-24  9:54       ` Ingo Molnar
2017-10-24  9:54         ` Ingo Molnar
2017-10-24 10:23         ` Will Deacon
2017-10-23 21:07 ` [PATCH 18/19] alpha: atomics: Add smp_read_barrier_depends() to release/relaxed atomics Paul E. McKenney
2017-10-23 21:07 ` [PATCH 19/19] COCCINELLE: treewide: kill off ACCESS_ONCE() Paul E. McKenney
2017-10-24  9:32 ` [GIT PULL de-alpha] Make core code not need to know about Alpha for v4.15 Ingo Molnar
2017-10-24  9:32   ` Ingo Molnar
2017-10-25  8:45 ` Ingo Molnar
2017-10-25  8:54   ` Paul E. McKenney
2017-10-25  9:04     ` Ingo Molnar
2017-10-25  9:04       ` Ingo Molnar
2017-10-25 13:18       ` Paul E. McKenney

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=20171023210408.GA2930@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=davem@davemloft.net \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=shuah@kernel.org \
    --cc=snitzer@redhat.com \
    --cc=thor.thayer@linux.intel.com \
    --cc=tj@kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=will.deacon@arm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).