forked from Minki/linux
1c5526968e
Currently, buffers are cleared when smc connections are created and buffers are reused. This slows down the speed of establishing new connections. In most cases, the applications want to establish connections as quickly as possible. This patch moves memset() from connection creation path to release and buffer unuse path, this trades off between speed of establishing and release. Test environments: - CPU Intel Xeon Platinum 8 core, mem 32 GiB, nic Mellanox CX4 - socket sndbuf / rcvbuf: 16384 / 131072 bytes - w/o first round, 5 rounds, avg, 100 conns batch per round - smc_buf_create() use bpftrace kprobe, introduces extra latency Latency benchmarks for smc_buf_create(): w/o patch : 19040.0 ns w/ patch : 1932.6 ns ratio : 10.2% (-89.8%) Latency benchmarks for socket create and connect: w/o patch : 143.3 us w/ patch : 102.2 us ratio : 71.3% (-28.7%) The latency of establishing connections is reduced by 28.7%. Signed-off-by: Tony Lu <tonylu@linux.alibaba.com> Reviewed-by: Wen Gu <guwen@linux.alibaba.com> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com> Link: https://lore.kernel.org/r/20211203113331.2818873-1-kgraul@linux.ibm.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
||
---|---|---|
.. | ||
af_smc.c | ||
Kconfig | ||
Makefile | ||
smc_cdc.c | ||
smc_cdc.h | ||
smc_clc.c | ||
smc_clc.h | ||
smc_close.c | ||
smc_close.h | ||
smc_core.c | ||
smc_core.h | ||
smc_diag.c | ||
smc_ib.c | ||
smc_ib.h | ||
smc_ism.c | ||
smc_ism.h | ||
smc_llc.c | ||
smc_llc.h | ||
smc_netlink.c | ||
smc_netlink.h | ||
smc_netns.h | ||
smc_pnet.c | ||
smc_pnet.h | ||
smc_rx.c | ||
smc_rx.h | ||
smc_stats.c | ||
smc_stats.h | ||
smc_tracepoint.c | ||
smc_tracepoint.h | ||
smc_tx.c | ||
smc_tx.h | ||
smc_wr.c | ||
smc_wr.h | ||
smc.h |