RE: Please read - proposed WG termination

Michael Krause <[email protected]> Fri, 02 Sep 2005 15:41:55 -0700
Newsgroups gmane.ietf.ipoib
Message-ID <[email protected]>
At 01:02 PM 9/2/2005, Dror Goldenberg wrote:
>
>-----Original Message-----
>From: Michael Krause [mailto:[email protected]]
>Sent: Thursday, September 01, 2005 10:09 PM
>
>At 10:51 AM 9/1/2005, Vivek Kashyap wrote:
>>On Thu, 1 Sep 2005, Roland Dreier wrote:
>>
>>>    Bernard> In the HPC world most clusters use the cluster fabric (
>>>    Bernard> and IB is the future direction ) for both MPI and IP
>>>    Bernard> traffic. The IP traffic is usually for parallel file
>>>    Bernard> systems and system management and control. This high
>>>    Bernard> bandwidth IP network is required in most production HPC
>>>    Bernard> clusters.  With the current IPoIB only using UD, the
>>>    Bernard> performance is dismal. Our simulations using the small
>>>    Bernard> packet MTU of IB says that the parallel file systems (
>>>    Bernard> GPFS, PVFS, Lustre etc ) can only get 25% of a 4X IB link
>>>    Bernard> today and at 12X it will be about 10%.
>>>
>>>It's not clear to me that IPoIB-CM is really the answer here.  First
>>>of all, for Linux to take advantage of a 64K MTU, major surgery to the
>>>network stack will be required.  Production systems have trouble even
>>>enabling 8K jumbo frames, because the kernel can't allocate two
>>>physically contiguous buffers to use for receive.  Given that no
>>
>>That is an implementation issue in Linux and shouldn't effect the protocol.
>
>Linux does support large send off-load today so it is not clear what the 
>issue is you are speaking of above.
>
>[dg]  Large send offload solves the send side, but doesn't help on the 
>receive side. ipoib-cm solves both ends.
>Roland has a point that in Linux, it might be more complicated to 
>support >4KB frames. But I agree that this is an OS specific issue. In 
>this specific case, solving it may also be beneficial for other 
>applications such as Ethernet jumbo frames (if it makes any difference).

I think there is confusion perhaps here.  Most OS can map arbitrarily large 
buffers and provide V-to-P mappings that enable an I/O device to DMA large 
and variable amounts of data.  The 4KB limit is generally associated with 
the physical page size of many OS (though that too varies with some OS 
supporting up 1GB) as well as the physical maximum unit of DMA which is 4KB 
(PCI / PCI-X / PCIe).   Most device drivers / devices can also handle a SGL 
for a given target DMA address and sans separating on 4K address 
boundaries, can handle large DMA quite nicely.

The more interesting issues are:
- Must a large receive be handled as a single unit of work and thus must 
progress up the network stack as a single "message".  This has QoS and 
performance implications.  Obviously, iWARP and IB can perform such 
operations since that is the basis for RDMA as well as basic SEND 
operations so the basic hardware infrastructure is present.  The same can 
be said for various Ethernet implementations which support jumbo frames.

- Is the network stack limited in anyway in terms of message buffer size 
and therefore requires the implementation to post a set of message buffers 
which may be also SGL in order to receive the larger network sends?  This 
is where some of the complexity lies.

- Is there any impact to the recovery paths when a checksum, etc. requires 
only a portion of the large message to be retransmitted?  SACK, etc. are 
generally implemented but some implementations may make assumptions as the 
granularity of how the buffers are handled.

- etc.



>>>current IB hardware can offload TCP/IP checksums for multi-packet RC
>>>messages, it's not clear how feasible this network stack surgery is.
>>
>>Checksum offload is not part of the specification but an HCA feature.
>
>It is also not that hard to implement.
>
>[dg] Sounds right for ipoib-ud. For ipoib-cm csum offload implementation 
>is complicated. By the time you already transmitted 64KB, you need to go 
>and find the first packet (which is probably already in your peer' memory) 
>and place the csum there...
>  Anyway , I still see great value in ipoib-cm even without the csum 
> offload. The main reason is that to my knowledge, in Linux, large send 
> and zero copy are only supported for sendfile(). The rest of the 
> operations are on the copy path anyway. Calculating csum while copying, 
> is not a big deal.

It is true that copy-n-checksum is a de facto method to mitigate the 
performance impacts of not having checksum off-load support. Yet, there are 
many workloads where copy operations do not occur thus the performance hit 
is a big deal.  I don't think one can simply say IB connected provides 
superior performance compared to implementing something like a large send 
off-load, etc.

BTW, the new Sockets API extensions (async execution, event management, 
explicit memory management, etc.) enable more zero-copy opportunities as 
well as OS bypass.  It is important to keep in mind that an evaluation of 
whether something is of value needs a bit more context and future usages in 
mind.  In general, it is not clear why we are debating this so 
much.  People can define a spec and as we have seen  on multiple occasions 
either all, only a subset or none of the industry may implement even if the 
technology is superior in some facet.  If people really want to do this, 
then feel free to define but I suspect it might only appear on one OS at 
the end of the day and while that OS is relatively high volume for some 
usage models, that does not mean the spec will be deployed in practice or 
that it will be viewed as successful.  I personally do not believe the 
industry needs this problem solved as there are sufficiently good methods 
already available to solve the performance issues including using native 
RDMA ULP where performance is critical.

Mike

_______________________________________________
IPoverIB mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/ipoverib