kernel_optimize_test/net/tipc
Tuong Lien 06e7c70c6e tipc: improve message bundling algorithm
As mentioned in commit e95584a889 ("tipc: fix unlimited bundling of
small messages"), the current message bundling algorithm is inefficient
that can generate bundles of only one payload message, that causes
unnecessary overheads for both the sender and receiver.

This commit re-designs the 'tipc_msg_make_bundle()' function (now named
as 'tipc_msg_try_bundle()'), so that when a message comes at the first
place, we will just check & keep a reference to it if the message is
suitable for bundling. The message buffer will be put into the link
backlog queue and processed as normal. Later on, when another one comes
we will make a bundle with the first message if possible and so on...
This way, a bundle if really needed will always consist of at least two
payload messages. Otherwise, we let the first buffer go its way without
any need of bundling, so reduce the overheads to zero.

Moreover, since now we have both the messages in hand, we can even
optimize the 'tipc_msg_bundle()' function, make bundle of a very large
(size ~ MSS) and small messages which is not with the current algorithm
e.g. [1400-byte message] + [10-byte message] (MTU = 1500).

Acked-by: Ying Xue <ying.xue@windreiver.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-03 17:26:15 -08:00
..
addr.c
addr.h
bcast.c
bcast.h
bearer.c
bearer.h
core.c tipc: improve throughput between nodes in netns 2019-10-29 17:55:38 -07:00
core.h tipc: improve throughput between nodes in netns 2019-10-29 17:55:38 -07:00
diag.c
discover.c tipc: improve throughput between nodes in netns 2019-10-29 17:55:38 -07:00
discover.h
eth_media.c
group.c
group.h
ib_media.c
Kconfig
link.c tipc: improve message bundling algorithm 2019-11-03 17:26:15 -08:00
link.h
Makefile
monitor.c
monitor.h
msg.c tipc: improve message bundling algorithm 2019-11-03 17:26:15 -08:00
msg.h tipc: improve message bundling algorithm 2019-11-03 17:26:15 -08:00
name_distr.c tipc: improve throughput between nodes in netns 2019-10-29 17:55:38 -07:00
name_distr.h
name_table.c
name_table.h
net.c
net.h
netlink_compat.c net: tipc: prepare attrs in __tipc_nl_compat_dumpit() 2019-10-08 18:01:45 -07:00
netlink.c net: tipc: allocate attrs locally instead of using genl_family_attrbuf in compat_dumpit() 2019-10-06 15:44:47 +02:00
netlink.h net: tipc: allocate attrs locally instead of using genl_family_attrbuf in compat_dumpit() 2019-10-06 15:44:47 +02:00
node.c tipc: improve throughput between nodes in netns 2019-10-29 17:55:38 -07:00
node.h tipc: add smart nagle feature 2019-10-30 12:16:22 -07:00
socket.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
socket.h
subscr.c
subscr.h
sysctl.c
topsrv.c
topsrv.h
trace.c
trace.h
udp_media.c net: tipc: have genetlink code to parse the attrs during dumpit 2019-10-06 15:44:47 +02:00
udp_media.h