From: Jan Karcher <jaka@linux.ibm.com>
To: Wen Gu <guwen@linux.alibaba.com>,
wintera@linux.ibm.com, twinkler@linux.ibm.com, hca@linux.ibm.com,
gor@linux.ibm.com, agordeev@linux.ibm.com, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
wenjia@linux.ibm.com
Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com,
alibuda@linux.alibaba.com, tonylu@linux.alibaba.com,
linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
netdev@vger.kernel.org
Subject: Re: [PATCH net-next v6 00/11] net/smc: SMC intra-OS shortcut with loopback-ism
Date: Fri, 26 Apr 2024 09:02:47 +0200 [thread overview]
Message-ID: <5f50bc62-f7d5-4094-94de-a77a103fc111@linux.ibm.com> (raw)
In-Reply-To: <20240414040304.54255-1-guwen@linux.alibaba.com>
On 14/04/2024 06:02, Wen Gu wrote:
> This patch set acts as the second part of the new version of [1] (The first
> part can be referred from [2]), the updated things of this version are listed
> at the end.
>
> - Background
>
> SMC-D is now used in IBM z with ISM function to optimize network interconnect
> for intra-CPC communications. Inspired by this, we try to make SMC-D available
> on the non-s390 architecture through a software-implemented Emulated-ISM device,
> that is the loopback-ism device here, to accelerate inter-process or
> inter-containers communication within the same OS instance.
>
> - Design
>
> This patch set includes 3 parts:
>
> - Patch #1: some prepare work for loopback-ism.
> - Patch #2-#7: implement loopback-ism device and adapt SMC-D for it.
> loopback-ism now serves only SMC and no userspace interfaces exposed.
> - Patch #8-#11: memory copy optimization for intra-OS scenario.
>
> The loopback-ism device is designed as an ISMv2 device and not be limited to
> a specific net namespace, ends of both inter-process connection (1/1' in diagram
> below) or inter-container connection (2/2' in diagram below) can find the same
> available loopback-ism and choose it during the CLC handshake.
>
> Container 1 (ns1) Container 2 (ns2)
> +-----------------------------------------+ +-------------------------+
> | +-------+ +-------+ +-------+ | | +-------+ |
> | | App A | | App B | | App C | | | | App D |<-+ |
> | +-------+ +---^---+ +-------+ | | +-------+ |(2') |
> | |127.0.0.1 (1')| |192.168.0.11 192.168.0.12| |
> | (1)| +--------+ | +--------+ |(2) | | +--------+ +--------+ |
> | `-->| lo |-` | eth0 |<-` | | | lo | | eth0 | |
> +---------+--|---^-+---+-----|--+---------+ +-+--------+---+-^------+-+
> | | | |
> Kernel | | | |
> +----+-------v---+-----------v----------------------------------+---+----+
> | | TCP | |
> | | | |
> | +--------------------------------------------------------------+ |
> | |
> | +--------------+ |
> | | smc loopback | |
> +---------------------------+--------------+-----------------------------+
>
> loopback-ism device creates DMBs (shared memory) for each connection peer.
> Since data transfer occurs within the same kernel, the sndbuf of each peer
> is only a descriptor and point to the same memory region as peer DMB, so that
> the data copy from sndbuf to peer DMB can be avoided in loopback-ism case.
>
> Container 1 (ns1) Container 2 (ns2)
> +-----------------------------------------+ +-------------------------+
> | +-------+ | | +-------+ |
> | | App C |-----+ | | | App D | |
> | +-------+ | | | +-^-----+ |
> | | | | | |
> | (2) | | | (2') | |
> | | | | | |
> +---------------|-------------------------+ +----------|--------------+
> | |
> Kernel | |
> +---------------|-----------------------------------------|--------------+
> | +--------+ +--v-----+ +--------+ +--------+ |
> | |dmb_desc| |snd_desc| |dmb_desc| |snd_desc| |
> | +-----|--+ +--|-----+ +-----|--+ +--------+ |
> | +-----|--+ | +-----|--+ |
> | | DMB C | +---------------------------------| DMB D | |
> | +--------+ +--------+ |
> | |
> | +--------------+ |
> | | smc loopback | |
> +---------------------------+--------------+-----------------------------+
>
> - Benchmark Test
>
> * Test environments:
> - VM with Intel Xeon Platinum 8 core 2.50GHz, 16 GiB mem.
> - SMC sndbuf/DMB size 1MB.
>
> * Test object:
> - TCP: run on TCP loopback.
> - SMC lo: run on SMC loopback-ism.
>
> 1. ipc-benchmark (see [3])
>
> - ./<foo> -c 1000000 -s 100
>
> TCP SMC-lo
> Message
> rate (msg/s) 79693 148236(+86.01%)
>
> 2. sockperf
>
> - serv: <smc_run> sockperf sr --tcp
> - clnt: <smc_run> sockperf { tp | pp } --tcp --msg-size={ 64000 for tp | 14 for pp } -i 127.0.0.1 -t 30
>
> TCP SMC-lo
> Bandwidth(MBps) 4815.18 8061.77(+67.42%)
> Latency(us) 6.176 3.449(-44.15%)
>
> 3. nginx/wrk
>
> - serv: <smc_run> nginx
> - clnt: <smc_run> wrk -t 8 -c 1000 -d 30 http://127.0.0.1:80
>
> TCP SMC-lo
> Requests/s 196555.02 263270.95(+33.94%)
>
> 4. redis-benchmark
>
> - serv: <smc_run> redis-server
> - clnt: <smc_run> redis-benchmark -h 127.0.0.1 -q -t set,get -n 400000 -c 200 -d 1024
>
> TCP SMC-lo
> GET(Requests/s) 88711.47 120048.02(+35.32%)
> SET(Requests/s) 89465.44 123152.71(+37.65%)
>
>
Hi Wen Gu,
I did run the tests again with the v6 and reviewed the patchset. If you
decide to address Simons nit feel free to add my:
Reviewed-and-tested-by: Jan Karcher <jaka@linux.ibm.com>
Thanks for your effort and contribution.
- J
next prev parent reply other threads:[~2024-04-26 7:03 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-14 4:02 [PATCH net-next v6 00/11] net/smc: SMC intra-OS shortcut with loopback-ism Wen Gu
2024-04-14 4:02 ` [PATCH net-next v6 01/11] net/smc: decouple ism_client from SMC-D DMB registration Wen Gu
2024-04-15 8:41 ` Alexandra Winter
2024-04-16 13:58 ` Wen Gu
2024-04-25 11:29 ` Wenjia Zhang
2024-04-14 4:02 ` [PATCH net-next v6 02/11] net/smc: introduce loopback-ism for SMC intra-OS shortcut Wen Gu
2024-04-17 10:20 ` Gerd Bayer
2024-04-14 4:02 ` [PATCH net-next v6 03/11] net/smc: implement ID-related operations of loopback-ism Wen Gu
2024-04-14 4:02 ` [PATCH net-next v6 04/11] net/smc: implement DMB-related " Wen Gu
2024-04-14 4:02 ` [PATCH net-next v6 05/11] net/smc: mark optional smcd_ops and check for support when called Wen Gu
2024-04-14 4:02 ` [PATCH net-next v6 06/11] net/smc: ignore loopback-ism when dumping SMC-D devices Wen Gu
2024-04-14 4:03 ` [PATCH net-next v6 07/11] net/smc: register loopback-ism into SMC-D device list Wen Gu
2024-04-25 11:29 ` Wenjia Zhang
2024-04-25 13:29 ` Alexandra Winter
2024-04-26 8:04 ` Wenjia Zhang
2024-04-26 8:09 ` Wen Gu
2024-04-14 4:03 ` [PATCH net-next v6 08/11] net/smc: add operations to merge sndbuf with peer DMB Wen Gu
2024-04-14 4:03 ` [PATCH net-next v6 09/11] net/smc: {at|de}tach sndbuf to peer DMB if supported Wen Gu
2024-04-14 4:03 ` [PATCH net-next v6 10/11] net/smc: adapt cursor update when sndbuf and peer DMB are merged Wen Gu
2024-04-16 11:05 ` Simon Horman
2024-04-16 14:06 ` Wen Gu
2024-04-14 4:03 ` [PATCH net-next v6 11/11] net/smc: implement DMB-merged operations of loopback-ism Wen Gu
2024-04-17 15:36 ` [PATCH net-next v6 00/11] net/smc: SMC intra-OS shortcut with loopback-ism Wenjia Zhang
2024-04-23 6:45 ` Wen Gu
2024-04-25 11:30 ` Wenjia Zhang
2024-04-26 7:02 ` Jan Karcher [this message]
2024-04-26 8:17 ` 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=5f50bc62-f7d5-4094-94de-a77a103fc111@linux.ibm.com \
--to=jaka@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=alibuda@linux.alibaba.com \
--cc=borntraeger@linux.ibm.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gor@linux.ibm.com \
--cc=guwen@linux.alibaba.com \
--cc=hca@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=svens@linux.ibm.com \
--cc=tonylu@linux.alibaba.com \
--cc=twinkler@linux.ibm.com \
--cc=wenjia@linux.ibm.com \
--cc=wintera@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.