mirror-linux/arch/sparc/include/asm
Mateusz Guzik c8afaa1b0f locking: remove spin_lock_prefetch
The only remaining consumer is new_inode, where it showed up in 2001 as
commit c37fa164f793 ("v2.4.9.9 -> v2.4.9.10") in a historical repo [1]
with a changelog which does not mention it.

Since then the line got only touched up to keep compiling.

While it may have been of benefit back in the day, it is guaranteed to
at best not get in the way in the multicore setting -- as the code
performs *a lot* of work between the prefetch and actual lock acquire,
any contention means the cacheline is already invalid by the time the
routine calls spin_lock().  It adds spurious traffic, for short.

On top of it prefetch is notoriously tricky to use for single-threaded
purposes, making it questionable from the get go.

As such, remove it.

I admit upfront I did not see value in benchmarking this change, but I
can do it if that is deemed appropriate.

Removal from new_inode and of the entire thing are in the same patch as
requested by Linus, so whatever weird looks can be directed at that guy.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/commit/fs/inode.c?id=c37fa164f793735b32aa3f53154ff1a7659e6442 [1]
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2023-08-12 09:18:47 -07:00
..
Kbuild char/agp: introduce asm-generic/agp.h 2023-02-13 22:13:29 +01:00
adi.h
adi_64.h
apb.h
asm-offsets.h
asm-prototypes.h
asm.h
asmmacro.h
atomic.h
atomic_32.h locking/atomic: sparc: add preprocessor symbols 2023-06-05 09:57:17 +02:00
atomic_64.h locking/atomic: sparc: add preprocessor symbols 2023-06-05 09:57:17 +02:00
auxio.h
auxio_32.h
auxio_64.h
backoff.h SPARC: backoff.h: delete a duplicated word 2020-07-21 18:22:02 -07:00
barrier.h
barrier_32.h
barrier_64.h
bbc.h
bitext.h
bitops.h
bitops_32.h bitops: wrap non-atomic bitops with a transparent macro 2022-06-30 19:52:41 -07:00
bitops_64.h include: move find.h from asm_generic to linux 2022-01-15 08:47:31 -08:00
btext.h
bug.h
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cacheflush.h
cacheflush_32.h sparc: cacheflush_32.h needs struct page 2022-04-23 09:27:17 -07:00
cacheflush_64.h arm,sparc,unicore32: remove flush_icache_user_range 2020-06-08 11:05:57 -07:00
cachetlb_32.h
chafsr.h
checksum.h sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
checksum_32.h sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
checksum_64.h sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
chmctrl.h
clock.h
clocksource.h
cmpxchg.h
cmpxchg_32.h sparc: mark __arch_xchg() as __always_inline 2023-07-13 09:54:32 -07:00
cmpxchg_64.h sparc: mark __arch_xchg() as __always_inline 2023-07-13 09:54:32 -07:00
compat.h asm-generic: compat: Cleanup duplicate definitions 2022-04-26 13:35:54 -07:00
compat_signal.h
contregs.h
cpu_type.h
cpudata.h
cpudata_32.h
cpudata_64.h
current.h
dcr.h
dcu.h
delay.h
delay_32.h
delay_64.h
device.h
dma-mapping.h dma-mapping: no need to pass a bus_type into get_arch_dma_ops() 2023-02-15 12:35:20 +01:00
dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
ebus_dma.h
ecc.h
eeprom.h
elf.h
elf_32.h
elf_64.h sparc32: switch to generic extables 2021-01-03 20:05:18 -05:00
estate.h
extable.h sparc32: switch to generic extables 2021-01-03 20:05:18 -05:00
fb.h fbdev: Rename fb_mem*() helpers 2023-05-18 11:07:54 +02:00
fbio.h
fhc.h
floppy.h
floppy_32.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
floppy_64.h
fpumacro.h
ftrace.h tracing: Fix various typos in comments 2021-03-23 14:08:18 -04:00
futex.h
futex_32.h
futex_64.h
hardirq.h
hardirq_32.h
hardirq_64.h
head.h
head_32.h
head_64.h
hibernate.h
highmem.h sparc/mm/highmem: flush cache and TLB 2021-01-24 10:34:52 -08:00
hugetlb.h mm: change huge_ptep_clear_flush() to return the original pte 2022-05-13 16:48:55 -07:00
hvtramp.h
hw_irq.h
hypervisor.h
ide.h mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
idprom.h
intr_queue.h
io-unit.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
io.h sparc: Fix the generic IO helpers 2022-09-08 16:49:14 +02:00
io_32.h sparc32: Move ioremap/iounmap declaration before asm-generic/io.h include 2020-10-05 09:44:41 +01:00
io_64.h sparc: Fix the generic IO helpers 2022-09-08 16:49:14 +02:00
ioctls.h
iommu-common.h
iommu.h
iommu_32.h
iommu_64.h
irq.h
irq_32.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
irq_64.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
irqflags.h
irqflags_32.h
irqflags_64.h
jump_label.h
kdebug.h
kdebug_32.h
kdebug_64.h
kgdb.h
kprobes.h kprobes: treewide: Make it harder to refer kretprobe_trampoline directly 2021-09-30 21:24:06 -04:00
ldc.h
leon.h
leon_amba.h
leon_pci.h
lsu.h
machines.h
mbus.h
mc146818rtc.h
mc146818rtc_32.h
mc146818rtc_64.h
mdesc.h
memctrl.h
mman.h sparc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT 2022-04-28 23:16:13 -07:00
mmu.h
mmu_32.h
mmu_64.h
mmu_context.h
mmu_context_32.h sparc: use asm-generic/mmu_context.h for no-op implementations 2020-10-27 16:02:38 +01:00
mmu_context_64.h mm: Expose untagging mask in /proc/$PID/status 2023-03-16 13:08:40 -07:00
mmzone.h mm: replace CONFIG_NEED_MULTIPLE_NODES with CONFIG_NUMA 2021-06-29 10:53:55 -07:00
mxcc.h
nmi.h watchdog/hardlockup: declare arch_touch_nmi_watchdog() only in linux/nmi.h 2023-06-19 16:25:29 -07:00
ns87303.h
obio.h
openprom.h
oplib.h
oplib_32.h
oplib_64.h
page.h
page_32.h mm, arch: add generic implementation of pfn_valid() for FLATMEM 2023-02-09 16:51:41 -08:00
page_64.h
parport.h
pbm.h
pci.h Merge branch 'pci/header-cleanup-immutable' 2022-08-04 11:46:53 -05:00
pcic.h
pcr.h
percpu.h
percpu_32.h
percpu_64.h sparc64: Fix asm/percpu.h build error 2020-07-10 12:00:01 +02:00
perf_event.h
pgalloc.h
pgalloc_32.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
pgalloc_64.h mm/thp: define default pmd_pgtable() 2021-07-01 11:06:03 -07:00
pgtable.h
pgtable_32.h mm: remove __HAVE_ARCH_PTE_SWP_EXCLUSIVE 2023-02-02 22:33:11 -08:00
pgtable_64.h sparc/mm: don't unconditionally set HW writable bit when setting PTE dirty on 64bit 2023-04-18 16:30:00 -07:00
pgtsrmmu.h sparc/mm: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE on 32bit 2023-02-02 22:33:10 -08:00
pil.h
processor.h
processor_32.h kernel: exit: cleanup release_thread() 2022-09-11 21:55:07 -07:00
processor_64.h locking: remove spin_lock_prefetch 2023-08-12 09:18:47 -07:00
prom.h of: Make devtree_lock declaration private 2023-04-10 18:32:31 -05:00
psr.h
ptrace.h ptrace: Remove the unnecessary arguments from arch_ptrace_stop 2021-10-06 11:27:41 -05:00
qrwlock.h
qspinlock.h
ross.h
sbi.h
scratchpad.h
seccomp.h
sections.h
setup.h
sfafsr.h
sfp-machine.h
sfp-machine_32.h
sfp-machine_64.h
shmparam.h
shmparam_32.h
shmparam_64.h
sigcontext.h
signal.h sparc: remove SA_STATIC_ALLOC macro definition 2020-09-14 17:04:49 -07:00
smp.h
smp_32.h sparc: Unbreak the build 2022-09-29 19:21:10 -07:00
smp_64.h sparc/cpu: Mark cpu_play_dead() __noreturn 2023-03-08 08:44:25 -08:00
sparsemem.h sparc: drop unused MAX_PHYSADDR_BITS 2020-08-12 10:57:57 -07:00
spinlock.h
spinlock_32.h
spinlock_64.h locking/arch: Move qrwlock.h include after qspinlock.h 2021-02-11 07:59:54 -05:00
spinlock_types.h
spitfire.h
stacktrace.h
starfire.h
string.h
string_32.h
string_64.h
sunbpp.h
swift.h
switch_to.h
switch_to_32.h
switch_to_64.h sparc64: remove CONFIG_SET_FS support 2022-02-25 09:36:06 +01:00
syscall.h arch: remove unused function syscall_set_arguments() 2021-09-14 16:06:20 +02:00
syscalls.h sparc64: enable HAVE_COPY_THREAD_TLS 2020-06-23 10:49:54 +02:00
termbits.h
thread_info.h
thread_info_32.h sparc: add support for TIF_NOTIFY_SIGNAL 2020-12-12 09:17:38 -07:00
thread_info_64.h sparc64: remove CONFIG_SET_FS support 2022-02-25 09:36:06 +01:00
timer.h
timer_32.h
timer_64.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
timex.h
timex_32.h sparc: use fallback for random_get_entropy() instead of zero 2022-05-13 23:59:23 +02:00
timex_64.h
tlb.h
tlb_32.h
tlb_64.h mmu_gather: Remove per arch tlb_{start,end}_vma() 2022-07-21 10:50:13 -07:00
tlbflush.h
tlbflush_32.h
tlbflush_64.h
topology.h
topology_32.h
topology_64.h
trap_block.h sparc64: Fix asm/percpu.h build error 2020-07-10 12:00:01 +02:00
traps.h
tsb.h
tsunami.h
ttable.h
turbosparc.h
uaccess.h uaccess: generalize access_ok() 2022-02-25 09:36:05 +01:00
uaccess_32.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +01:00
uaccess_64.h mm: Introduce untagged_addr_remote() 2023-03-16 13:08:39 -07:00
unistd.h fs: stat: compat: Add __ARCH_WANT_COMPAT_STAT 2022-04-26 13:35:45 -07:00
upa.h
uprobes.h
user.h
vaddrs.h sparc/mm/highmem: Switch to generic kmap atomic 2020-11-06 23:14:57 +01:00
vdso.h
vga.h
viking.h
vio.h vio: move to_vio_dev() to use container_of_const() 2023-01-27 13:45:41 +01:00
visasm.h
vmalloc.h
vvar.h locking/seqlock, headers: Untangle the spaghetti monster 2020-08-06 16:13:13 +02:00
winmacro.h
xor.h
xor_32.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00
xor_64.h lib/xor: make xor prototypes more friendly to compiler vectorization 2022-02-11 20:39:39 +11:00