1
0
Fork 0
alistair23-linux/net/rxrpc
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
..
Kconfig rxrpc: Add config to inject packet loss 2016-09-17 11:24:04 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
af_rxrpc.c Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL 2018-06-28 10:40:47 -07:00
ar-internal.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-06-06 18:39:49 -07:00
call_accept.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-04-03 14:04:18 -07:00
call_event.c rxrpc: Fix handling of call quietly cancelled out on server 2018-06-04 16:06:26 -04:00
call_object.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-04-03 14:04:18 -07:00
conn_client.c rxrpc: Fix apparent leak of rxrpc_local objects 2018-03-30 21:05:33 +01:00
conn_event.c rxrpc: Fix terminal retransmission connection ID to include the channel 2018-06-06 14:04:08 -04:00
conn_object.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-04-03 14:04:18 -07:00
conn_service.c rxrpc: Fix apparent leak of rxrpc_local objects 2018-03-30 21:05:33 +01:00
input.c rxrpc: Fix handling of call quietly cancelled out on server 2018-06-04 16:06:26 -04:00
insecure.c rxrpc: Trace protocol errors in received packets 2017-04-06 11:09:39 +01:00
key.c rxrpc: Use correct timestamp from Kerberos 5 ticket 2017-08-29 10:55:06 +01:00
local_event.c rxrpc: Trace UDP transmission failure 2018-05-10 23:26:01 +01:00
local_object.c rxrpc: Fix error reception on AF_INET6 sockets 2018-05-10 23:26:00 +01:00
misc.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
net_ns.c proc: introduce proc_create_net{,_data} 2018-05-16 07:24:30 +02:00
output.c rxrpc: Trace UDP transmission failure 2018-05-10 23:26:01 +01:00
peer_event.c rxrpc: Add a tracepoint to log ICMP/ICMP6 and error messages 2018-05-10 23:26:01 +01:00
peer_object.c rxrpc: Fix leak of rxrpc_peer objects 2018-03-30 21:05:44 +01:00
proc.c proc: introduce proc_create_net{,_data} 2018-05-16 07:24:30 +02:00
protocol.h rxrpc: Fix undefined packet handling 2018-04-04 11:04:08 -04:00
recvmsg.c rxrpc: remove redundant initialization of variable 'len' 2018-03-16 09:48:39 -04:00
rxkad.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
security.c rxrpc: remove unused static variables 2018-03-30 21:04:44 +01:00
sendmsg.c rxrpc: Fix missing start of call timeout 2018-05-10 23:26:00 +01:00
skbuff.c net: convert sk_buff.users from atomic_t to refcount_t 2017-07-01 07:39:07 -07:00
sysctl.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
utils.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00