netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wen Gu <guwen@linux.alibaba.com>
To: Cong Wang <xiyou.wangcong@gmail.com>
Cc: 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, jaka@linux.ibm.com,
	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, bpf@vger.kernel.org
Subject: Re: [PATCH net-next v7 00/11] net/smc: SMC intra-OS shortcut with loopback-ism
Date: Tue, 7 May 2024 22:34:09 +0800	[thread overview]
Message-ID: <2e34e4ea-b198-487e-be5b-ba854965dbeb@linux.alibaba.com> (raw)
In-Reply-To: <Zi5wIrf3nAeJh1u5@pop-os.localdomain>



On 2024/4/28 23:49, Cong Wang wrote:
> On Sun, Apr 28, 2024 at 02:07:27PM +0800, 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.
> 
> Just FYI:
> 
> Cilium has implemented this kind of shortcut with sockmap and sockops.
> In fact, for intra-OS case, it is _very_ simple. The core code is less
> than 50 lines. Please take a look here:
> https://github.com/cilium/cilium/blob/v1.11.4/bpf/sockops/bpf_sockops.c
> 
> Like I mentioned in my LSF/MM/BPF proposal, we plan to implement
> similiar eBPF things for inter-OS (aka VM) case.
> 
> More importantly, even LD_PRELOAD is not needed for this eBPF approach.
> :)
> 
> Thanks.

Hi, Cong. Thank you very much for the information. I learned about sockmap
before and from my perspective smcd loopback and sockmap each have their own
pros and cons.

The pros of smcd loopback is that it uses a standard process that defined
by RFC-7609 for negotiation, this CLC handshake helps smc correctly determine
whether the tcp connection should be upgraded no matter what middleware the
connection passes, e.g. through NAT. So we don't need to pay extra effort to
check whether the connection should be shortcut, unlike checking various policy
by bpf_sock_ops_ipv4() in sockmap. And since the handshake automatically select
different underlay devices for different scenarios (loopback-ism in intra-OS,
ISM in inter-VM of IBM z and RDMA in inter-VM of different hosts), various
scenarios can be covered through one smc protocol stack.

The cons of smcd loopback is also related to the CLC handshake, one more round
handshake may cause smc to perform worse than TCP in short-lived connection
scenarios. So we basically use smc upgrade in long-lived connection scenarios
and are exploring IPPROTO_SMC[1] to provide lossless fallback under adverse cases.

And we are also working on other upgrade ways than LD_PRELOAD, e.g. using eBPF
hook[2] with IPPROTO_SMC, to enhance the usability.

[1] https://lore.kernel.org/netdev/1708412505-34470-1-git-send-email-alibuda@linux.alibaba.com/
[2] https://lore.kernel.org/all/ac84be00f97072a46f8a72b4e2be46cbb7fa5053.1692147782.git.geliang.tang@suse.com/

Thanks!

  reply	other threads:[~2024-05-07 14:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-28  6:07 [PATCH net-next v7 00/11] net/smc: SMC intra-OS shortcut with loopback-ism Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 01/11] net/smc: decouple ism_client from SMC-D DMB registration Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 02/11] net/smc: introduce loopback-ism for SMC intra-OS shortcut Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 03/11] net/smc: implement ID-related operations of loopback-ism Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 04/11] net/smc: implement DMB-related " Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 05/11] net/smc: mark optional smcd_ops and check for support when called Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 06/11] net/smc: ignore loopback-ism when dumping SMC-D devices Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 07/11] net/smc: register loopback-ism into SMC-D device list Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 08/11] net/smc: add operations to merge sndbuf with peer DMB Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 09/11] net/smc: {at|de}tach sndbuf to peer DMB if supported Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 10/11] net/smc: adapt cursor update when sndbuf and peer DMB are merged Wen Gu
2024-04-28  6:07 ` [PATCH net-next v7 11/11] net/smc: implement DMB-merged operations of loopback-ism Wen Gu
2024-04-28 15:49 ` [PATCH net-next v7 00/11] net/smc: SMC intra-OS shortcut with loopback-ism Cong Wang
2024-05-07 14:34   ` Wen Gu [this message]
2024-05-07 16:10     ` Cong Wang
2024-05-08  3:48       ` Wen Gu
2024-05-08  6:39       ` Tony Lu
2024-04-30 11:40 ` patchwork-bot+netdevbpf

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=2e34e4ea-b198-487e-be5b-ba854965dbeb@linux.alibaba.com \
    --to=guwen@linux.alibaba.com \
    --cc=agordeev@linux.ibm.com \
    --cc=alibuda@linux.alibaba.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=bpf@vger.kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=jaka@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 \
    --cc=xiyou.wangcong@gmail.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;
as well as URLs for NNTP newsgroup(s).