Skip to content
  1. Dec 08, 2021
  2. Dec 07, 2021
    • Tony Lu's avatar
      net/smc: Clear memory when release and reuse buffer · 1c552696
      Tony Lu authored
      
      
      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: default avatarTony Lu <tonylu@linux.alibaba.com>
      Reviewed-by: default avatarWen Gu <guwen@linux.alibaba.com>
      Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
      Link: https://lore.kernel.org/r/20211203113331.2818873-1-kgraul@linux.ibm.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      1c552696