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
..
9p
bluetooth
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
caif
caif: reduce stack size with KASAN
2018-01-19 14:02:12 -05:00
iucv
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
netfilter
netfilter: nf_conncount: Fix garbage collection with zones
2018-06-12 20:07:07 +02:00
netns
netfilter: nf_tables: fix chain dependency validation
2018-06-01 09:46:22 +02:00
nfc
phonet
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
sctp
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
tc_act
net/sched: act_csum: don't use spinlock in the fast path
2018-01-23 19:51:46 -05:00
6lowpan.h
act_api.h
net/sched: remove tcf_idr_cleanup()
2018-03-23 21:52:19 -04:00
addrconf.h
net/ipv6: Add support for specifying metric of connected routes
2018-05-29 10:12:45 -04:00
af_ieee802154.h
af_rxrpc.h
rxrpc, afs: Use debug_ids rather than pointers in traces
2018-03-27 23:03:00 +01:00
af_unix.h
af_vsock.h
ah.h
arp.h
ipv4: Make neigh lookup keys for loopback/point-to-point devices be INADDR_ANY
2018-01-15 14:53:43 -05:00
atmclip.h
ax25.h
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
ax88796.h
net-next: ax88796: add interrupt status callback to platform data
2018-04-19 16:11:11 -04:00
bond_3ad.h
bond_alb.h
bond_options.h
bonding.h
bonding: allow use of tx hashing in balance-alb
2018-05-16 12:15:11 -04:00
busy_poll.h
net: refactor socket_poll
2018-05-26 09:16:44 +02:00
calipso.h
cfg80211-wext.h
cfg80211.h
nl80211: Update ERP info using NL80211_CMD_UPDATE_CONNECT_PARAMS
2018-05-23 11:21:35 +02:00
cfg802154.h
checksum.h
cipso_ipv4.h
cls_cgroup.h
codel.h
codel_impl.h
codel_qdisc.h
compat.h
net: remove compat_sys_*() prototypes from net/compat.h
2018-04-02 20:16:17 +02:00
datalink.h
dcbevent.h
dcbnl.h
net/dcb: Add dcbnl buffer attribute
2018-05-24 14:22:59 -07:00
devlink.h
devlink: Add extack to reload and port_{un, }split operations
2018-06-05 12:32:37 -04:00
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsa.h
net: dsa: Plug in PHYLINK support
2018-05-11 12:03:06 -04:00
dsfield.h
dst.h
net: core: dst: Add kernel-doc for 'net' parameter
2018-03-05 12:52:45 -05:00
dst_cache.h
net: core: dst_cache_set_ip6: Rename 'addr' parameter to 'saddr' for consistency
2018-03-05 12:52:45 -05:00
dst_metadata.h
dst_ops.h
erspan.h
erspan: set bso bit based on mirrored packet's len
2018-05-20 18:31:42 -04:00
esp.h
ethoc.h
inet: whitespace cleanup
2018-02-28 11:43:28 -05:00
failover.h
net: Introduce generic failover module
2018-05-28 22:59:54 -04:00
fib_notifier.h
fib_rules.h
net: fib_rules: add extack support
2018-04-23 10:21:24 -04:00
firewire.h
flow.h
net: Remove unused get_hash_from_flow functions
2018-03-04 13:04:23 -05:00
flow_dissector.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-05-11 20:53:22 -04:00
fou.h
fq.h
fq_impl.h
garp.h
gen_stats.h
genetlink.h
geneve.h
gre.h
net: GRE: Add is_gretap_dev, is_ip6gretap_dev
2018-02-27 14:46:26 -05:00
gro_cells.h
gtp.h
gue.h
hwbm.h
icmp.h
ieee80211_radiotap.h
mac80211: support reporting A-MPDU EOF bit value/known
2018-02-22 21:13:02 +01:00
ieee802154_netdev.h
if_inet6.h
net/ipv6: Add support for specifying metric of connected routes
2018-05-29 10:12:45 -04:00
ife.h
net: sched: ife: handle malformed tlv length
2018-04-22 21:12:00 -04:00
ila.h
inet6_connection_sock.h
inet6_hashtables.h
inet_common.h
net: Introduce __inet_bind() and __inet6_bind
2018-03-31 02:15:43 +02:00
inet_connection_sock.h
net: ipv4: remove define INET_CSK_DEBUG and unnecessary EXPORT_SYMBOL
2018-05-10 17:43:55 -04:00
inet_ecn.h
inet_frag.h
inet: frags: reorganize struct netns_frags
2018-03-31 23:25:39 -04:00
inet_hashtables.h
inet_sock.h
udp: generate gso with UDP_SEGMENT
2018-04-26 15:08:04 -04:00
inet_timewait_sock.h
net-tcp: remove useless tw_timeout field
2018-06-05 10:45:24 -04:00
inetpeer.h
ip.h
ipv4: support sport, dport and ip_proto in RTM_GETROUTE
2018-05-23 15:14:12 -04:00
ip6_checksum.h
ip6_fib.h
net/ipv6: respect rcu grace period before freeing fib6_info
2018-06-20 07:57:23 +09:00
ip6_route.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
2018-05-24 22:20:51 -04:00
ip6_tunnel.h
ip_fib.h
net/ipv4: Add helper to return path MTU based on fib result
2018-05-22 10:51:09 +02:00
ip_tunnels.h
net/ipv4: Update ip_tunnel_metadata_cnt static key to modern api
2018-05-10 15:13:33 -04:00
ip_vs.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
2018-06-11 14:24:32 -07:00
ipcomp.h
ipconfig.h
ipv6.h
ipv6: omit traffic class when calculating flow hash
2018-06-04 13:21:18 -04:00
ipx.h
iw_handler.h
net: Spelling s/stucture/structure/
2018-03-27 09:51:23 +02:00
kcm.h
l3mdev.h
lapb.h
lib80211.h
llc.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc: delete timers synchronously in llc_sk_free()
2018-04-22 14:55:03 -04:00
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
lwtunnel.h
net: Move ipv4 set_lwt_redirect helper to lwtunnel
2018-02-14 14:43:32 -05:00
mac80211.h
mac80211: Support adding duration for prepare_tx() callback
2018-05-23 11:06:10 +02:00
mac802154.h
mip6.h
mld.h
mpls.h
mpls_iptunnel.h
mrp.h
ncsi.h
ndisc.h
neighbour.h
neighbour: support for NTF_EXT_LEARNED flag
2018-04-25 13:19:59 -04:00
net_failover.h
net: Introduce net_failover driver
2018-05-28 22:59:54 -04:00
net_namespace.h
net: Introduce net_rwsem to protect net_namespace_list
2018-03-29 13:47:53 -04:00
net_ratelimit.h
netevent.h
net/ipv6: Add support for path selection using hash of 5-tuple
2018-03-04 13:04:23 -05:00
netlabel.h
netlink.h
netprio_cgroup.h
netrom.h
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
nexthop.h
net: fix rtnh_ok()
2018-04-07 22:32:31 -04:00
nl802154.h
nsh.h
p8022.h
page_pool.h
xdp: introduce xdp_return_frame_rx_napi
2018-05-24 18:36:15 -07:00
ping.h
ipv{4,6}/ping: simplify proc file creation
2018-05-16 07:23:35 +02:00
pkt_cls.h
net: sched: mq: request stats from offloads
2018-05-29 09:49:16 -04:00
pkt_sched.h
net: remove prototype of qdisc_lookup_class()
2018-01-16 14:56:54 -05:00
pptp.h
protocol.h
psample.h
psnap.h
raw.h
ipv{4,6}/raw: simplify ѕeq_file code
2018-05-16 07:23:35 +02:00
rawv6.h
red.h
regulatory.h
cfg80211: read wmm rules from regulatory database
2018-03-29 11:11:40 +02:00
request_sock.h
rose.h
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
route.h
net/ipv4: Add support for specifying metric of connected routes
2018-05-29 10:12:45 -04:00
rsi_91x.h
Bluetooth: btrsi: add new rsi bluetooth driver
2018-03-13 18:37:02 +02:00
rtnetlink.h
rtnetlink: Remove VLA usage
2018-05-31 22:48:46 -04:00
sch_generic.h
net: sched: add qstats.qlen to qlen
2018-05-29 09:49:15 -04:00
scm.h
secure_seq.h
seg6.h
ipv6: sr: export function lookup_nexthop
2018-05-24 11:57:35 +02:00
seg6_hmac.h
seg6_local.h
bpf: Add IPv6 Segment Routing helpers
2018-05-24 11:57:35 +02:00
slhc_vj.h
slip: Check if rstate is initialized before uncompressing
2018-04-11 10:33:46 -04:00
smc.h
snmp.h
sock.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
sock_reuseport.h
Space.h
net/mac89x0: Convert to platform_driver
2018-03-01 21:21:36 -05:00
stp.h
strparser.h
strparser: Add __strp_unpause and use it in ktls.
2018-06-06 14:07:53 -04:00
switchdev.h
switchdev: Add fdb.added_by_user to switchdev notifications
2018-05-03 13:46:47 -04:00
tcp.h
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
tcp_states.h
tcp: remove the hardcode in the definition of TCPF Macro
2018-02-21 15:06:05 -05:00
timewait_sock.h
tipc.h
flow_dissector: do not rely on implicit casts
2018-05-08 00:02:41 -04:00
tls.h
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
transp_v6.h
udp: fix rx queue len reported by diag and proc interface
2018-06-08 19:55:15 -04:00
tso.h
tun_proto.h
udp.h
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
2018-06-28 10:40:47 -07:00
udp_tunnel.h
udplite.h
udplite: fix partial checksum initialization
2018-02-16 15:57:42 -05:00
vsock_addr.h
vxlan.h
vxlan: add ttl inherit support
2018-04-17 13:53:13 -04:00
wext.h
lift handling of SIOCIW... out of dev_ioctl()
2018-01-24 19:13:45 -05:00
wimax.h
x25.h
x25device.h
xdp.h
xdp: add MEM_TYPE_ZERO_COPY
2018-06-05 15:46:26 +02:00
xdp_sock.h
xsk: wire upp Tx zero-copy functions
2018-06-05 15:48:34 +02:00
xfrm.h
audit/stable-4.18 PR 20180605
2018-06-06 16:34:00 -07:00