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
..
datagram.c
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
dev.c
net: propagate dev_get_valid_name return code
2018-06-20 08:12:57 +09:00
dev_addr_lists.c
net: change the comment of dev_mc_init
2018-04-19 12:58:20 -04:00
dev_ioctl.c
net: don't unnecessarily load kernel modules in dev_ioctl()
2018-03-07 15:12:58 -05:00
devlink.c
devlink: Add extack to reload and port_{un, }split operations
2018-06-05 12:32:37 -04:00
drop_monitor.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
dst.c
net/ipv6: move metrics from dst to rt6_info
2018-04-17 23:41:16 -04:00
dst_cache.c
net: core: dst_cache_set_ip6: Rename 'addr' parameter to 'saddr' for consistency
2018-03-05 12:52:45 -05:00
ethtool.c
treewide: Use array_size() in vzalloc()
2018-06-12 16:19:22 -07:00
failover.c
net: Introduce generic failover module
2018-05-28 22:59:54 -04:00
fib_notifier.c
net: Fix fib notifer to return errno
2018-03-29 14:10:30 -04:00
fib_rules.c
net: rules: Move l3mdev attribute validation to a helper
2018-04-25 13:26:12 -04:00
filter.c
xdp: Fix handling of devmap in generic XDP
2018-06-15 23:47:15 +02:00
flow_dissector.c
ipv6: omit traffic class when calculating flow hash
2018-06-04 13:21:18 -04:00
gen_estimator.c
net_sched: gen_estimator: fix broken estimators based on percpu stats
2018-02-23 12:35:46 -05:00
gen_stats.c
net: sched: add support for TCQ_F_NOLOCK subqueues to sch_mq
2017-12-08 13:32:26 -05:00
gro_cells.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
hwbm.c
net: hwbm: Fix unbalanced spinlock in error case
2016-05-25 12:35:09 -07:00
link_watch.c
net: link_watch: mark bonding link events urgent
2018-01-23 19:43:30 -05:00
lwt_bpf.c
bpf: rename bpf_compute_data_end into bpf_compute_data_pointers
2017-09-26 13:36:44 -07:00
lwtunnel.c
ipv6: sr: define core operations for seg6local lightweight tunnel
2017-08-07 14:16:22 -07:00
Makefile
net: Introduce generic failover module
2018-05-28 22:59:54 -04:00
neighbour.c
neighbour: skip NTF_EXT_LEARNED entries during forced gc
2018-06-15 09:37:33 -07:00
net-procfs.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
net-sysfs.c
net-sysfs: Fix memory leak in XPS configuration
2018-05-31 23:02:42 -04:00
net-sysfs.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
net-traces.c
net/ipv6: Udate fib6_table_lookup tracepoint
2018-05-24 23:01:15 -04:00
net_namespace.c
net: Do not take net_rwsem in __rtnl_link_unregister()
2018-03-31 22:24:58 -04:00
netclassid_cgroup.c
cgroup: add @flags to css_task_iter_start() and implement CSS_TASK_ITER_PROCS
2017-07-21 11:14:51 -04:00
netevent.c
netevent: remove automatic variable in register_netevent_notifier()
2015-05-31 00:03:21 -07:00
netpoll.c
netpoll: Use lockdep to assert IRQs are disabled/enabled
2017-11-08 11:13:54 +01:00
netprio_cgroup.c
net: remove duplicate includes
2017-12-13 13:18:46 -05:00
page_pool.c
page_pool: refurbish version of page_pool code
2018-04-17 10:50:29 -04:00
pktgen.c
treewide: Use array_size() in vzalloc_node()
2018-06-12 16:19:22 -07:00
ptp_classifier.c
ptp: Change ptp_class to a proper bitmask
2015-11-03 11:08:22 -05:00
request_sock.c
ipv4: Namespaceify tcp_max_syn_backlog knob
2016-12-29 11:38:31 -05:00
rtnetlink.c
rtnetlink: validate attributes in do_setlink()
2018-06-05 12:45:29 -04:00
scm.c
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/user.h>
2017-03-02 08:42:29 +01:00
secure_seq.c
tcp: Namespaceify sysctl_tcp_timestamps
2017-06-08 10:53:29 -04:00
skbuff.c
net: Rename and export copy_skb_header
2018-05-01 09:42:46 -04:00
sock.c
Revert "net: do not allow changing SO_REUSEADDR/SO_REUSEPORT on bound sockets"
2018-06-12 11:09:23 -07:00
sock_diag.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
sock_reuseport.c
soreuseport: fix mem leak in reuseport_add_sock()
2018-02-02 19:47:03 -05:00
stream.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
sysctl_net_core.c
headers: untangle kmemleak.h from mm.h
2018-04-05 21:36:27 -07:00
timestamping.c
net: skb_defer_rx_timestamp should check for phydev before setting up classify
2015-07-09 14:17:15 -07:00
tso.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
utils.c
net/utils: Introduce inet_addr_is_any
2018-03-26 08:53:43 -06:00
xdp.c
xdp: add MEM_TYPE_ZERO_COPY
2018-06-05 15:46:26 +02:00