[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5bb98815-43f8-4ca5-96b7-9b4b0cd77d40@linux.ibm.com>
Date: Fri, 17 Jan 2025 13:06:32 +0100
From: Alexandra Winter <wintera@...ux.ibm.com>
To: Andrew Lunn <andrew@...n.ch>
Cc: Wenjia Zhang <wenjia@...ux.ibm.com>, Jan Karcher <jaka@...ux.ibm.com>,
Gerd Bayer <gbayer@...ux.ibm.com>, Halil Pasic <pasic@...ux.ibm.com>,
"D. Wythe" <alibuda@...ux.alibaba.com>,
Tony Lu <tonylu@...ux.alibaba.com>, Wen Gu <guwen@...ux.alibaba.com>,
Peter Oberparleiter
<oberpar@...ux.ibm.com>,
David Miller <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Eric Dumazet <edumazet@...gle.com>,
Andrew Lunn <andrew+netdev@...n.ch>,
Julian Ruess <julianr@...ux.ibm.com>,
Niklas Schnelle <schnelle@...ux.ibm.com>,
Thorsten Winkler <twinkler@...ux.ibm.com>, netdev@...r.kernel.org,
linux-s390@...r.kernel.org, Heiko Carstens <hca@...ux.ibm.com>,
Vasily Gorbik <gor@...ux.ibm.com>,
Alexander Gordeev
<agordeev@...ux.ibm.com>,
Christian Borntraeger <borntraeger@...ux.ibm.com>,
Sven Schnelle <svens@...ux.ibm.com>, Simon Horman <horms@...nel.org>
Subject: Re: [RFC net-next 1/7] net/ism: Create net/ism
On 16.01.25 21:08, Andrew Lunn wrote:
>> +ISM (INTERNAL SHARED MEMORY)
>> +M: Alexandra Winter <wintera@...ux.ibm.com>
>> +L: netdev@...r.kernel.org
>> +S: Supported
>> +F: include/linux/ism.h
>> +F: net/ism/
>
> Is there any high level documentation about this?
As the ISM devices were developed for SMC-D, the only documentation
is about their usage for SMC-D.
e.g.:
https://www.ibm.com/support/pages/system/files/inline-files/IBM%20Shared%20Memory%20Communications%20Version%202.1%20Emulated-ISM_0.pdf
(page 33)
https://community.ibm.com/community/user/ibmz-and-linuxone/viewdocument/2021-07-15-boosting-tcp-networking?CommunityKey=c1293167-6d93-448e-8854-3068846d3dfe&tab=librarydocuments
But those do not go into much detail.
We now want to provide interfaces for other usecases in Linux.
ism.h would be the place to explicitely state the assumptions, restrictions and
requirements in a single place, so future devices and clients know about them.
>
> A while back, TI was trying to upstream something for one of there
> SoCs. It was a multi CPU system, with not all CPUs used for SMP, but
> one or two kept for management and real time tasks, not even running
> Linux. They had a block of shared memory used for communication
> between the CPUs/OSes, along with rproc. They layered an ethernet
> driver on top of this, with buffers for frames in the shared memory.
>
> Could ISM be used for something like this?
>
> Andrew
If the communication endpoints were represented as devices, that sounds like a similar concept.
I think you could implement a client that provides network devices on top of ism devices.
(mapping MACs to GIDs)
As the memory buffers are set up for 1 sender and 1 receiver, it would either create some additional
latency, if you setup buffers for each message or additional memory consumption, if you try to keep and
re-use the buffers.
I'm not sure what the benefit ISM would provide as ethernet device. A shared network card would probably
outperform such a usecase.
SMC exploits ISM for TCP traffic. There the buffers are kept per socket connection, and a lot of the
TCP/IP mechanisms are not neccessary, because transport is reliable, synchronous and in-order.
Thus latency is minimal.
Powered by blists - more mailing lists