Linus Torvalds
a11e1d432b
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
...
The poll() changes were not well thought out, and completely
unexplained. They also caused a huge performance regression, because
"->poll()" was no longer a trivial file operation that just called down
to the underlying file operations, but instead did at least two indirect
calls.
Indirect calls are sadly slow now with the Spectre mitigation, but the
performance problem could at least be largely mitigated by changing the
"->get_poll_head()" operation to just have a per-file-descriptor pointer
to the poll head instead. That gets rid of one of the new indirections.
But that doesn't fix the new complexity that is completely unwarranted
for the regular case. The (undocumented) reason for the poll() changes
was some alleged AIO poll race fixing, but we don't make the common case
slower and more complex for some uncommon special case, so this all
really needs way more explanations and most likely a fundamental
redesign.
[ This revert is a revert of about 30 different commits, not reverted
individually because that would just be unnecessarily messy - Linus ]
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-06-28 10:40:47 -07:00
..
agp
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
hw_random
hwrng: core - Always drop the RNG in hwrng_unregister()
2018-06-15 23:06:49 +08:00
ipmi
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
mwave
char/mwave: make some arrays static const to make object code smaller
2017-07-17 17:23:16 +02:00
pcmcia
tty: replace ->proc_fops with ->proc_show
2018-05-16 07:24:30 +02:00
tpm
treewide: devm_kzalloc() -> devm_kcalloc()
2018-06-12 16:19:22 -07:00
xilinx_hwicap
char: xilinx_hwicap: Fix warnings in the driver
2017-08-28 17:04:47 +02:00
xillybus
PCI: Add Altera vendor ID
2018-03-14 19:13:47 +01:00
adi.c
char: sparc64: Add privileged ADI driver
2018-06-05 11:24:55 -07:00
apm-emulation.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
applicom.c
applicom: constify pci_device_id.
2017-08-28 17:11:28 +02:00
applicom.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
bsr.c
bsr: avoid format string leaking into device name
2014-07-09 16:59:15 -07:00
ds1620.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
dsp56k.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
dtlk.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
efirtc.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
generic_nvram.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
hangcheck-timer.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
hpet.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
Kconfig
docs: Fix some broken references
2018-06-15 18:10:01 -03:00
lp.c
char: lp: use true or false for boolean values
2018-01-25 10:56:02 +01:00
Makefile
char: sparc64: Add privileged ADI driver
2018-06-05 11:24:55 -07:00
mbcs.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
mbcs.h
mem.c
/dev/mem: Avoid overwriting "err" in read_mem()
2018-03-28 13:23:54 +02:00
misc.c
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
mspec.c
char: mspec: change return type to vm_fault_t
2018-04-23 13:51:53 +02:00
nsc_gpio.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
nvram.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
nwbutton.c
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
nwbutton.h
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
2017-11-21 15:57:05 -08:00
nwflash.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
pc8736x_gpio.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
powernv-op-panel.c
powerpc/powernv: Add driver for operator panel on FSP machines
2016-06-29 17:33:46 +10:00
ppdev.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
ps3flash.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
random.c
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
raw.c
treewide: Use array_size() in vzalloc()
2018-06-12 16:19:22 -07:00
rtc.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
scx200_gpio.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
snsc.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
snsc.h
snsc_event.c
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h>
2017-03-02 08:42:29 +01:00
sonypi.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
tb0219.c
mips: separate extable.h, switch module.h to it
2016-10-05 18:36:18 -04:00
tlclk.c
timer: Remove last user of TIMER_INITIALIZER
2017-10-05 15:01:18 +02:00
toshiba.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
ttyprintk.c
ttyprintk: Neaten and simplify printing
2016-09-13 17:30:17 +02:00
uv_mmtimer.c
virtio_console.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00