public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Wen Gu <guwen@linux.alibaba.com>
To: kgraul@linux.ibm.com, wenjia@linux.ibm.com, davem@davemloft.net,
	edumazet@google.com, kuba@kernel.org, pabeni@redhat.com
Cc: linux-s390@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH net-next 0/6] net/smc: Introduce virtually contiguous buffers for SMC-R
Date: Tue, 12 Jul 2022 19:51:24 +0800	[thread overview]
Message-ID: <1657626690-60367-1-git-send-email-guwen@linux.alibaba.com> (raw)

On long-running enterprise production servers, high-order contiguous
memory pages are usually very rare and in most cases we can only get
fragmented pages.

When replacing TCP with SMC-R in such production scenarios, attempting
to allocate high-order physically contiguous sndbufs and RMBs may result
in frequent memory compaction, which will cause unexpected hung issue
and further stability risks.

So this patch set is aimed to allow SMC-R link group to use virtually
contiguous sndbufs and RMBs to avoid potential issues mentioned above.
Whether to use physically or virtually contiguous buffers can be set
by sysctl smcr_buf_type.

Note that using virtually contiguous buffers will bring an acceptable
performance regression, which can be mainly divided into two parts:

1) regression in data path, which is brought by additional address
   translation of sndbuf by RNIC in Tx. But in general, translating
   address through MTT is fast. According to qperf test, this part
   regression is basically less than 10% in latency and bandwidth.
   (see patch 5/6 for details)

2) regression in buffer initialization and destruction path, which is
   brought by additional MR operations of sndbufs. But thanks to link
   group buffer reuse mechanism, the impact of this kind of regression
   decreases as times of buffer reuse increases.

Patch set overview:
- Patch 1/6 and 2/6 mainly about simplifying and optimizing DMA sync
  operation, which will reduce overhead on the data path, especially
  when using virtually contiguous buffers;
- Patch 3/6 and 4/6 introduce a sysctl smcr_buf_type to set the type
  of buffers in new created link group;
- Patch 5/6 allows SMC-R to use virtually contiguous sndbufs and RMBs,
  including buffer creation, destruction, MR operation and access;
- patch 6/6 extends netlink attribute for buffer type of SMC-R link group;

Guangguan Wang (2):
  net/smc: remove redundant dma sync ops
  net/smc: optimize for smc_sndbuf_sync_sg_for_device and
    smc_rmb_sync_sg_for_cpu

Wen Gu (4):
  net/smc: Introduce a sysctl for setting SMC-R buffer type
  net/smc: Use sysctl-specified types of buffers in new link group
  net/smc: Allow virtually contiguous sndbufs or RMBs for SMC-R
  net/smc: Extend SMC-R link group netlink attribute

 include/net/netns/smc.h  |   1 +
 include/uapi/linux/smc.h |   1 +
 net/smc/af_smc.c         |  68 +++++++++++--
 net/smc/smc_clc.c        |   8 +-
 net/smc/smc_clc.h        |   2 +-
 net/smc/smc_core.c       | 246 ++++++++++++++++++++++++++++++-----------------
 net/smc/smc_core.h       |  20 +++-
 net/smc/smc_ib.c         |  44 +++++++--
 net/smc/smc_ib.h         |   2 +
 net/smc/smc_llc.c        |  33 ++++---
 net/smc/smc_rx.c         |  92 ++++++++++++++----
 net/smc/smc_sysctl.c     |  11 +++
 net/smc/smc_tx.c         |  10 +-
 13 files changed, 391 insertions(+), 147 deletions(-)

-- 
1.8.3.1


             reply	other threads:[~2022-07-12 11:51 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-12 11:51 Wen Gu [this message]
2022-07-12 11:51 ` [PATCH net-next 1/6] net/smc: remove redundant dma sync ops Wen Gu
2022-07-12 11:51 ` [PATCH net-next 2/6] net/smc: optimize for smc_sndbuf_sync_sg_for_device and smc_rmb_sync_sg_for_cpu Wen Gu
2022-07-12 11:51 ` [PATCH net-next 3/6] net/smc: Introduce a sysctl for setting SMC-R buffer type Wen Gu
2022-07-12 11:51 ` [PATCH net-next 4/6] net/smc: Use sysctl-specified types of buffers in new link group Wen Gu
2022-07-12 11:51 ` [PATCH net-next 5/6] net/smc: Allow virtually contiguous sndbufs or RMBs for SMC-R Wen Gu
2022-07-13  3:54   ` Jakub Kicinski
2022-07-13 13:20     ` Wen Gu
2022-07-12 11:51 ` [PATCH net-next 6/6] net/smc: Extend SMC-R link group netlink attribute Wen Gu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1657626690-60367-1-git-send-email-guwen@linux.alibaba.com \
    --to=guwen@linux.alibaba.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kgraul@linux.ibm.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=wenjia@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox