linux/arch/s390/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
..
fpu
trace
vdso s390/vdso: remove empty unused file 2020-11-03 15:12:15 +01:00
airq.h
alternative-asm.h
alternative.h s390/alternatives: make use of asm_inline 2019-10-31 17:20:51 +01:00
ap.h
appldata.h
archrandom.h s390/crypto: add arch_get_random_long() support 2020-12-10 21:02:08 +01:00
asm-const.h s390/kernel: unify EX_TABLE* implementations 2020-07-20 10:55:45 +02:00
asm-prototypes.h
atomic.h s390/atomic: circumvent gcc 10 build regression 2020-08-11 18:16:08 +02:00
atomic_ops.h s390/atomic,bitops: mark function(s) __always_inline 2019-10-04 16:37:33 +02:00
barrier.h
bitops.h kasan: support instrumented bitops combined with generic bitops 2019-11-07 13:15:39 +11:00
boot_data.h
bug.h printk: Make linux/printk.h self-contained 2020-07-27 17:46:24 +09:00
bugs.h
cache.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
ccwdev.h s390/cio: remove pm support from ccw bus driver 2020-12-02 18:19:25 +01:00
ccwgroup.h s390/net: remove pm ops from ccwgroup drivers 2020-05-19 12:48:39 -07:00
checksum.h s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
chpid.h
chsc.h s390/cio: Add new Operation Code OC3 to PNSO 2020-09-15 13:21:46 -07:00
cio.h s390/cio: fix kernel-doc markups in cio driver. 2020-11-20 19:19:10 +01:00
clocksource.h s390: convert to GENERIC_VDSO 2020-08-26 18:47:21 +02:00
clp.h s390/pci: Implement ioremap_wc/prot() with MIO 2020-09-14 10:30:07 +02:00
cmb.h
cmpxchg.h
compat.h compat: lift compat_s64 and compat_u64 to <asm-generic/compat.h> 2020-09-17 13:00:46 -04:00
cpacf.h s390: mark __cpacf_query() as __always_inline 2019-10-04 16:37:33 +02:00
cpcmd.h
cpu.h
cpu_mcf.h
cpu_mf-insn.h
cpu_mf.h s390/cpum_sf: Replace function name in debug statements 2019-11-30 10:52:46 +01:00
cpufeature.h
cputime.h
crw.h
css_chars.h s390/cio: Add new Operation Code OC3 to PNSO 2020-09-15 13:21:46 -07:00
ctl_reg.h s390/early: move control registers setup in C code 2019-11-20 12:58:12 +01:00
current.h
debug.h s390/debug: debug feature version 3 2020-08-11 18:16:43 +02:00
delay.h s390/udelay: make it work for the early code 2020-11-09 11:20:58 +01:00
diag.h s390/setup: diag 318: refactor struct 2020-06-23 09:16:48 +02:00
dis.h
dma.h
dwarf.h
eadm.h
ebcdic.h
elf.h
exec.h
extable.h s390/kernel: expand exception table logic to allow new handling options 2020-07-20 10:55:50 +02:00
extmem.h
facility.h
fcx.h
ftrace.h s390/ftrace: assume -mhotpatch or -mrecord-mcount always available 2020-11-20 19:19:11 +01:00
futex.h s390/mm: remove set_fs / rework address space handling 2020-11-23 12:01:12 +01:00
gmap.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
hardirq.h
hugetlb.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
hw_irq.h s390/irq: make init_ext_interrupts static 2020-03-11 14:18:44 +01:00
idals.h
idle.h
io.h s390/pci: Implement ioremap_wc/prot() with MIO 2020-09-14 10:30:07 +02:00
ipl.h s390/nvme: support firmware-assisted dump to NVMe disks 2020-10-02 14:40:48 +02:00
irq.h
irqflags.h
isc.h
itcw.h
jump_label.h s390/jump_label: use "i" constraint for clang 2020-01-22 13:05:35 +01:00
kasan.h s390/kasan: move memory needs estimation into a function 2020-11-09 11:20:59 +01:00
Kbuild KVM: Move x86's version of struct kvm_mmu_memory_cache to common code 2020-07-09 13:29:42 -04:00
kdebug.h
kexec.h
kprobes.h s390: support KPROBES_ON_FTRACE 2020-01-30 13:07:55 +01:00
kvm_host.h KVM: s390: Enhancement for 5.9 2020-08-03 14:19:13 -04:00
kvm_para.h
linkage.h s390/kernel: expand exception table logic to allow new handling options 2020-07-20 10:55:50 +02:00
livepatch.h
lowcore.h s390/mm: remove set_fs / rework address space handling 2020-11-23 12:01:12 +01:00
mem_detect.h s390/mem_detect: provide single get_mem_detect_end 2019-08-26 12:51:18 +02:00
mem_encrypt.h s390/mm: Remove sev_active() function 2019-08-09 22:52:11 +10:00
mmu.h s390 updates for the 5.7 merge window 2020-04-04 09:45:50 -07:00
mmu_context.h asm-generic: mmu-context cleanup 2020-12-15 23:58:04 -08:00
mmzone.h
module.h
nmi.h s390: remove critical section cleanup from entry.S 2020-05-28 12:21:54 +02:00
nospec-branch.h
nospec-insn.h
numa.h s390/mm: remove fake numa support 2020-02-27 16:02:21 +01:00
os_info.h
page-states.h
page.h mm/vma: define a default value for VM_DATA_DEFAULT_FLAGS 2020-04-10 15:36:21 -07:00
pci.h VFIO updates for v5.10-rc1 2020-10-22 13:00:44 -07:00
pci_clp.h s390/pci: Implement ioremap_wc/prot() with MIO 2020-09-14 10:30:07 +02:00
pci_debug.h
pci_dma.h s390/pci: remove unused functions 2020-06-29 16:32:09 +02:00
pci_insn.h s390: fix setting of mio addressing control 2019-07-11 20:40:02 +02:00
pci_io.h s390/pci: Fix s390_mmio_read/write with MIO 2020-05-14 23:21:37 +02:00
percpu.h s390: don't trace preemption in percpu macros 2020-08-26 18:07:04 +02:00
perf_event.h s390: implement perf_arch_fetch_caller_regs 2019-11-30 10:52:44 +01:00
pgalloc.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
pgtable.h s390/mm: use invalid asce instead of kernel asce 2020-11-23 12:01:12 +01:00
pkey.h s390/pkey: pkey cleanup: narrow in-kernel API, fix some variable types 2019-08-21 12:58:53 +02:00
pnet.h
preempt.h sched/rt, s390: Use CONFIG_PREEMPTION 2019-12-08 14:37:35 +01:00
processor.h s390/mm: remove set_fs / rework address space handling 2020-11-23 12:01:12 +01:00
ptdump.h s390: add ARCH_HAS_DEBUG_WX support 2020-09-14 11:38:35 +02:00
ptrace.h s390/mm: remove set_fs / rework address space handling 2020-11-23 12:01:12 +01:00
purgatory.h
qdio.h s390/qdio: always use dev_name() for device name in QIB 2020-09-14 10:30:07 +02:00
runtime_instr.h
schid.h
sclp.h s390/sclp: provide extended sccb support 2020-11-18 12:16:02 +01:00
scsw.h
seccomp.h s390: Enable seccomp architecture tracking 2020-11-20 11:16:35 -08:00
sections.h s390: correct __bootdata / __bootdata_preserved macros 2020-10-26 14:18:01 +01:00
serial.h
set_memory.h s390/mm,ptdump: hold cpa mutex while walking for kernel page table dump 2020-09-14 11:38:34 +02:00
setup.h s390: unify identity mapping limits handling 2020-11-20 19:19:10 +01:00
shmparam.h
signal.h
sigp.h
smp.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
sparsemem.h
spinlock.h s390/alternatives: make use of asm_inline 2019-10-31 17:20:51 +01:00
spinlock_types.h
stacktrace.h s390: fix register clobbering in CALL_ON_STACK 2019-11-30 10:52:47 +01:00
stp.h s390/stp: add support for leap seconds 2020-09-26 15:51:21 +02:00
string.h s390/kasan: provide uninstrumented __strlen 2019-08-21 12:58:52 +02:00
switch_to.h
syscall.h s390: fix syscall_get_error for compat processes 2020-06-17 23:05:05 +02:00
syscall_wrapper.h s390: enable HAVE_FUNCTION_ERROR_INJECTION 2020-07-27 10:33:28 +02:00
sysinfo.h
termios.h
thread_info.h tif-task_work.arch-2020-12-14 2020-12-16 12:33:35 -08:00
timex.h s390/vdso: reimplement getcpu vdso syscall 2020-11-23 12:01:13 +01:00
tlb.h mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
tlbflush.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
topology.h s390/numa: set node distance to LOCAL_DISTANCE 2020-08-11 18:16:35 +02:00
uaccess.h s390/mm: add debug user asce support 2020-11-23 12:01:12 +01:00
unistd.h s390: wire up clone3 system call 2019-07-23 10:45:53 +02:00
unwind.h s390/unwind: start unwinding from reliable state 2019-11-30 10:52:48 +01:00
uprobes.h
user.h
uv.h s390/uv: add destroy page call 2020-09-14 11:38:35 +02:00
vdso.h s390/vdso: reimplement getcpu vdso syscall 2020-11-23 12:01:13 +01:00
vga.h
vmalloc.h mm/vmalloc: Add empty <asm/vmalloc.h> headers and use them from <linux/vmalloc.h> 2019-12-10 10:12:55 +01:00
vmlinux.lds.h
vtime.h s390/vtime: Use the generic IRQ entry accounting 2020-12-02 20:20:04 +01:00
vtimer.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
vx-insn.h
xor.h