On Fri, Nov 26, 2021 at 11:28:55AM -0800, Jakub Kicinski wrote: > 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. Sorry for the unclear tag. This patch introduces a performance improvement. It should be with net-next. I will fix it and send v2. Thank you. Thanks, Tony Lu