linux/arch/mips/include/asm
Linus Torvalds 005b2a9dc8 tif-task_work.arch-2020-12-14
-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAl/YJxsQHGF4Ym9lQGtl
 cm5lbC5kawAKCRD301j7KXHgpjpyEACBdW+YjenjTbkUPeEXzQgkBkTZUYw3g007
 DPcUT1g8PQZXYXlQvBKCvGhhIr7/KVcjepKoowiNQfBNGcIPJTVopW58nzpqAfTQ
 goI2WYGn5EKFFKBPvtH04cJD/Wo8muXdxynKtqyZbnGGgZjQxPrE259b8dpHjBSR
 6L7HHkk0D1oU/5b6h6Ocpg9mc/0iIUCZylySAYY3eGO0JaVPJaXgZSJZYgHxCHll
 Lb+/y/fXdtm/0PmQ3ko0ev54g3yEWqZIX0NsZW1asrButIy+KLzQ2Mz1xFLFDMag
 prtIfwb8tzgc4dFPY090C/azjCh5CPpxqYS6FkRwS0p86n6OhkyXrqfily5Hs4/B
 NC7CBPBSH/j+NKUK7CYZcpTzTpxPjUr9p0anUdlvMJz8FhTb/3YEEZ1UTeWOeHmk
 Yo5SxnFghLeZZeZ1ok6rdymnVa7WEX12SCLGQX31BB2mld0tNbKb4b+FsBF6OUMk
 IUaX6OjwDFVRaysC88BQ4hjcIP1HxsViG4/VZDX15gjAAH2Pvb+7tev+lcDcOhjz
 TCD4GNFspTFzRhh9nT7oxQ679qCh9G9zHbzuIRewnrS6iqvo5SJQB3dR2yrWZRRH
 ySkQFiHpYOlnLJYv0jg9COlGwo2FUdcvKhCvkjQKKBz48rzW/IC0LwKdRQWZDFk3
 FKGzP/NBig==
 =cadT
 -----END PGP SIGNATURE-----

Merge tag 'tif-task_work.arch-2020-12-14' of git://git.kernel.dk/linux-block

Pull TIF_NOTIFY_SIGNAL updates from Jens Axboe:
 "This sits on top of of the core entry/exit and x86 entry branch from
  the tip tree, which contains the generic and x86 parts of this work.

  Here we convert the rest of the archs to support TIF_NOTIFY_SIGNAL.

  With that done, we can get rid of JOBCTL_TASK_WORK from task_work and
  signal.c, and also remove a deadlock work-around in io_uring around
  knowing that signal based task_work waking is invoked with the sighand
  wait queue head lock.

  The motivation for this work is to decouple signal notify based
  task_work, of which io_uring is a heavy user of, from sighand. The
  sighand lock becomes a huge contention point, particularly for
  threaded workloads where it's shared between threads. Even outside of
  threaded applications it's slower than it needs to be.

  Roman Gershman <romger@amazon.com> reported that his networked
  workload dropped from 1.6M QPS at 80% CPU to 1.0M QPS at 100% CPU
  after io_uring was changed to use TIF_NOTIFY_SIGNAL. The time was all
  spent hammering on the sighand lock, showing 57% of the CPU time there
  [1].

  There are further cleanups possible on top of this. One example is
  TIF_PATCH_PENDING, where a patch already exists to use
  TIF_NOTIFY_SIGNAL instead. Hopefully this will also lead to more
  consolidation, but the work stands on its own as well"

[1] https://github.com/axboe/liburing/issues/215

* tag 'tif-task_work.arch-2020-12-14' of git://git.kernel.dk/linux-block: (28 commits)
  io_uring: remove 'twa_signal_ok' deadlock work-around
  kernel: remove checking for TIF_NOTIFY_SIGNAL
  signal: kill JOBCTL_TASK_WORK
  io_uring: JOBCTL_TASK_WORK is no longer used by task_work
  task_work: remove legacy TWA_SIGNAL path
  sparc: add support for TIF_NOTIFY_SIGNAL
  riscv: add support for TIF_NOTIFY_SIGNAL
  nds32: add support for TIF_NOTIFY_SIGNAL
  ia64: add support for TIF_NOTIFY_SIGNAL
  h8300: add support for TIF_NOTIFY_SIGNAL
  c6x: add support for TIF_NOTIFY_SIGNAL
  alpha: add support for TIF_NOTIFY_SIGNAL
  xtensa: add support for TIF_NOTIFY_SIGNAL
  arm: add support for TIF_NOTIFY_SIGNAL
  microblaze: add support for TIF_NOTIFY_SIGNAL
  hexagon: add support for TIF_NOTIFY_SIGNAL
  csky: add support for TIF_NOTIFY_SIGNAL
  openrisc: add support for TIF_NOTIFY_SIGNAL
  sh: add support for TIF_NOTIFY_SIGNAL
  um: add support for TIF_NOTIFY_SIGNAL
  ...
2020-12-16 12:33:35 -08:00
..
dec
fw
ip32
mach-ar7
mach-ath25
mach-ath79
mach-au1x00 MIPS: cpu-probe: remove MIPS_CPU_BP_GHIST option bit 2020-10-12 12:05:40 +02:00
mach-bcm47xx MIPS: BCM47xx: Include bcm47xx_sprom.h 2020-08-17 13:47:51 +02:00
mach-bcm63xx
mach-bmips
mach-cavium-octeon MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-cobalt
mach-db1x00
mach-dec
mach-generic MIPS: generic: Increase NR_IRQS to 256 2020-09-18 16:33:35 +02:00
mach-ingenic MIPS: jz4740: Rename jz4740 folders to ingenic 2020-09-18 16:35:05 +02:00
mach-ip22 MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-ip27 MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-ip28 MIPS: SGI-IP28: disable use of ll/sc in kernel 2020-10-08 10:33:27 +02:00
mach-ip30 MIPS: SGI-IP30: Move irq bits to better header files 2020-09-21 22:15:49 +02:00
mach-ip32 MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-jazz
mach-lantiq
mach-loongson2ef MIPS: Loongson2ef: Remove specific mc146818rtc.h 2020-08-26 12:22:38 +02:00
mach-loongson32
mach-loongson64 MIPS: Loongson64: Add Mail_Send support for 3A4000+ CPU 2020-11-11 23:52:50 +01:00
mach-malta MIPS: malta: remove mach-malta/malta-dtshim.h header file 2020-09-21 22:16:47 +02:00
mach-netlogic
mach-pic32
mach-pistachio
mach-ralink
mach-rc32434 MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-rm MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-sibyte MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-tx39xx
mach-tx49xx MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
mach-vr41xx
mips-boards MIPS: malta: remove mach-malta/malta-dtshim.h header file 2020-09-21 22:16:47 +02:00
netlogic MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
octeon mips: octeon: Add Ubiquiti E200 and E220 boards 2020-10-12 11:22:19 +02:00
pci
sgi MIPS: SGI-IP30: Move irq bits to better header files 2020-09-21 22:15:49 +02:00
sibyte
sn
txx9 MIPS: tx49xx: move tx4939_add_memory_regions into only user 2020-10-08 10:32:51 +02:00
vdso vdso/treewide: Add vdso_data pointer argument to __arch_get_hw_counter() 2020-08-06 10:57:30 +02:00
vr41xx
xtalk
Kbuild
abi.h
addrspace.h
amon.h
arch_hweight.h
asm-eva.h
asm-offsets.h
asm-prototypes.h
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h
atomic.h
barrier.h
bcache.h
bitops.h
bitrev.h
bmips-spaces.h
bmips.h
bootinfo.h MIPS: replace add_memory_region with memblock 2020-10-12 12:01:36 +02:00
branch.h
break.h
bug.h
bugs.h
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cacheflush.h
cacheops.h
cdmm.h
cevt-r4k.h
checksum.h mips: propagate the calling convention change down into __csum_partial_copy_..._user() 2020-08-20 15:45:20 -04:00
clocksource.h
cmp.h
cmpxchg.h
compat-signal.h
compat.h compat: lift compat_s64 and compat_u64 to <asm-generic/compat.h> 2020-09-17 13:00:46 -04:00
compiler.h MIPS: remove GCC < 4.9 support 2020-11-11 23:49:22 +01:00
cop2.h
cpu-features.h MIPS: Remove cpu_has_6k_cache and cpu_has_8k_cache in cpu_cache_init() 2020-11-19 13:28:58 +01:00
cpu-info.h
cpu-type.h MIPS: Add the missing 'CPU_1074K' into __get_cpu_type() 2020-09-23 14:48:30 +02:00
cpu.h MIPS: cpu-probe: remove MIPS_CPU_BP_GHIST option bit 2020-10-12 12:05:40 +02:00
cpufeature.h
debug.h
delay.h
div64.h
dma-coherence.h
dma-direct.h dma-direct: rename and cleanup __phys_to_dma 2020-09-11 09:14:43 +02:00
dma-mapping.h
dma.h
dmi.h
ds1287.h
dsemul.h
dsp.h
edac.h
elf.h
errno.h
eva.h
exec.h
extable.h
fb.h
fixmap.h mips/mm/highmem: Switch to generic kmap atomic 2020-11-06 23:14:56 +01:00
floppy.h
fpregdef.h
fpu.h
fpu_emulator.h
ftrace.h
futex.h MIPS: Convert R10000_LLSC_WAR info a config option 2020-09-07 22:24:27 +02:00
ginvt.h
gio_device.h
gt64120.h
hardirq.h
hazards.h
highmem.h mips/mm/highmem: Switch to generic kmap atomic 2020-11-06 23:14:56 +01:00
hpet.h
hugetlb.h
hw_irq.h
i8259.h
ide.h
idle.h MIPS: idle: Add prototype for function check_wait 2020-09-27 13:00:45 +02:00
inst.h
io.h
irq.h
irq_cpu.h
irq_gt641xx.h
irq_regs.h
irqflags.h mips: Implement arch_irqs_disabled() 2020-08-26 12:41:55 +02:00
isa-rev.h
isadep.h
jazz.h
jazzdma.h MIPS/jazzdma: remove the unused vdma_remap function 2020-09-11 08:13:49 +02:00
jump_label.h
kdebug.h
kexec.h
kgdb.h
kprobes.h
kvm_host.h KVM: MIPS: clean up redundant kvm_run parameters in assembly 2020-09-28 07:57:21 -04:00
kvm_types.h
linkage.h
llsc.h MIPS: Convert R10000_LLSC_WAR info a config option 2020-09-07 22:24:27 +02:00
local.h MIPS: Convert R10000_LLSC_WAR info a config option 2020-09-07 22:24:27 +02:00
maar.h
machine.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
mc146818-time.h
mc146818rtc.h
mips-cm.h
mips-cpc.h
mips-cps.h
mips-gic.h
mips-r2-to-r6-emul.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: Loongson-3: Enable COP2 usage in kernel 2020-09-21 22:15:03 +02:00
mmiowb.h
mmu.h
mmu_context.h mips: use asm-generic/mmu_context.h for no-op implementations 2020-10-27 16:02:36 +01:00
mmzone.h
module.h
msa.h
msc01_ic.h
paccess.h
page.h
pci.h
perf_event.h
pgalloc.h asm-generic: pgalloc: provide generic pgd_free() 2020-08-07 11:33:26 -07:00
pgtable-32.h arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed 2020-11-16 16:57:18 +01:00
pgtable-64.h
pgtable-bits.h MIPS: cpu-probe: Set Ingenic's writecombine to _CACHE_CACHABLE_WA 2020-09-18 16:26:36 +02:00
pgtable.h MIPS: mm: Add back define for PAGE_SHARED 2020-12-14 16:17:36 +01:00
pm-cps.h
pm.h
prefetch.h
processor.h MIPS: process: Add prototype for function arch_dup_task_struct 2020-09-30 21:52:42 +02:00
prom.h
ptrace.h
r4k-timer.h MIPS: Correct the header guard of r4k-timer.h 2020-09-18 15:29:00 +02:00
r4kcache.h
reboot.h
reg.h
regdef.h
rtlx.h
seccomp.h
setup.h
sgialib.h
sgiarcs.h
shmparam.h
sigcontext.h
signal.h
sim.h
smp-cps.h
smp-ops.h
smp.h
sni.h
socket.h
sparsemem.h
spinlock.h
spinlock_types.h
spram.h
stackframe.h MIPS: Loongson-3: Enable COP2 usage in kernel 2020-09-21 22:15:03 +02:00
stackprotector.h
stacktrace.h
string.h
switch_to.h MIPS: context switch: Use save/restore instead of set/clear for Status.CU2 2020-09-21 22:14:47 +02:00
sync.h
syscall.h
termios.h
thread_info.h mips: add support for TIF_NOTIFY_SIGNAL 2020-11-09 08:16:55 -07:00
time.h
timex.h
tlb.h
tlbdebug.h
tlbex.h
tlbflush.h
tlbmisc.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h mips: Remove #include <uapi/asm/types.h> from <asm/types.h> 2020-11-11 23:45:46 +01:00
uaccess.h uaccess: remove segment_eq 2020-08-12 10:57:58 -07:00
uasm.h
unaligned-emul.h
unistd.h
unroll.h treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
uprobes.h
vdso.h
vermagic.h
vga.h
vmalloc.h
vpe.h
war.h MIPS: Remove mach-*/war.h 2020-09-07 22:25:27 +02:00
watch.h
wbflush.h
yamon-dt.h