On Thu, 25 Nov 2021 20:28:59 +0800 Tony Lu wrote: > Currently, buffers are clear when smc create connections and reuse > buffer. It will slow down the speed of establishing new connection. In > most cases, the applications hope 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@xxxxxxxxxxxxxxxxx> > Reviewed-by: Wen Gu <guwen@xxxxxxxxxxxxxxxxx> The tag in the subject seems incorrect, we tag things as [PATCH net] if they are fixes, and as [PATCH net-next] if they are new features, code refactoring or performance improvements. Is this a fix for a regression? In which case we need a Fixes tag to indicate where it was introduced. Otherwise it needs to be tagged as [PATCH net-next]. I'm assuming Karsten will take it via his tree, otherwise you'll need to repost.