linux-pinenote/net
Jon Paul Maloy d999297c3d tipc: reduce locking scope during packet reception
We convert packet/message reception according to the same principle
we have been using for message sending and timeout handling:

We move the function tipc_rcv() to node.c, hence handling the initial
packet reception at the link aggregation level. The function grabs
the node lock, selects the receiving link, and accesses it via a new
call tipc_link_rcv(). This function appends buffers to the input
queue for delivery upwards, but it may also append outgoing packets
to the xmit queue, just as we do during regular message sending. The
latter will happen when buffers are forwarded from the link backlog,
or when retransmission is requested.

Upon return of this function, and after having released the node lock,
tipc_rcv() delivers/tranmsits the contents of those queues, but it may
also perform actions such as link activation or reset, as indicated by
the return flags from the link.

This reduces the number of cpu cycles spent inside the node spinlock,
and reduces contention on that lock.

Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-07-20 20:41:16 -07:00
..
6lowpan
9p Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-07-04 19:36:06 -07:00
802
8021q
appletalk
atm
ax25 ax25: Stop using sock->sk_protinfo. 2015-06-28 16:55:44 -07:00
batman-adv
bluetooth bluetooth: fix list handling 2015-07-04 19:11:33 -07:00
bridge bridge: mcast: fix br_multicast_dev_del warn when igmp snooping is not defined 2015-07-20 16:19:03 -07:00
caif
can can: replace timestamp as unique skb attribute 2015-07-12 21:13:22 +02:00
ceph libceph: treat sockaddr_storage with uninitialized family as blank 2015-07-09 20:30:34 +03:00
core net: don't reforward packets already forwarded by offload device 2015-07-20 18:32:44 -07:00
dcb
dccp sock_diag: specify info_size per inet protocol 2015-06-15 19:49:22 -07:00
decnet
dns_resolver
dsa net: dsa: Fix off-by-one in switch address parsing 2015-07-11 23:25:16 -07:00
ethernet
hsr
ieee802154
ipv4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-07-13 17:28:09 -07:00
ipv6 net/ipv6: update flowi6_oif in ip6_dst_lookup_flow if not set 2015-07-20 12:59:32 -07:00
ipx
irda
iucv
key Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-06-24 16:49:49 -07:00
l2tp
lapb
llc
mac80211 Minor merge needed, due to function move. 2015-07-01 10:49:25 -07:00
mac802154 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-06-24 16:49:49 -07:00
mpls Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-06-13 23:56:52 -07:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-07-13 17:28:09 -07:00
netlabel
netlink netlink: Delete an unnecessary check before the function call "module_put" 2015-07-03 09:27:43 -07:00
netrom netfilter: Remove spurios included of netfilter.h 2015-06-18 21:14:32 +02:00
nfc NFC: nci: fix mistake in uart generic driver 2015-06-15 18:10:37 +02:00
openvswitch
packet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-06-24 02:58:51 -07:00
phonet
rds net-RDS: Delete an unnecessary check before the function call "module_put" 2015-07-03 09:27:42 -07:00
rfkill
rose Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-06-24 02:58:51 -07:00
rxrpc
sched cls_cgroup: factor out classid retrieval 2015-07-20 12:41:30 -07:00
sctp sctp: Fix race between OOTB responce and route removal 2015-06-29 09:28:42 -07:00
sunrpc NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
switchdev switchdev: add offload_fwd_mark generator helper 2015-07-20 18:32:44 -07:00
tipc tipc: reduce locking scope during packet reception 2015-07-20 20:41:16 -07:00
unix net/unix: support SCM_SECURITY for stream sockets 2015-06-10 22:49:20 -07:00
vmw_vsock
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-06-13 23:56:52 -07:00
x25
xfrm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-06-24 16:49:49 -07:00
compat.c
Kconfig
Makefile
socket.c
sysctl_net.c