<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>RE: [openib-general] IB Query</TITLE>
</HEAD>
<BODY>
<BR>
<BR>

<P><FONT SIZE=2>> -----Original Message-----</FONT>
<BR><FONT SIZE=2>> From: Majumder, Rajib [<A HREF="mailto:rajib.majumder@csfb.com">mailto:rajib.majumder@csfb.com</A>] </FONT>
<BR><FONT SIZE=2>> Sent: Tuesday, August 02, 2005 6:05 AM</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>> I have a query regarding SDP/IB. I have 2 processes. 1 TCP </FONT>
<BR><FONT SIZE=2>> client and 1 TCP server, both are running on the same </FONT>
<BR><FONT SIZE=2>> physical host. We have IB HCA installed on this host.</FONT>
<BR><FONT SIZE=2>>  </FONT>
<BR><FONT SIZE=2>> Both the process communicate using SDP. </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Will there be any performance gain? </FONT>
<BR><FONT SIZE=2>> </FONT>
</P>

<P><FONT SIZE=2>These are the benefits of running the application locally over</FONT>
<BR><FONT SIZE=2>SDP:</FONT>
<BR><FONT SIZE=2>* When using BCopy SDP, then the HCA HW takes care </FONT>
<BR><FONT SIZE=2>    of all transport offloading - segmentation & reassembly,</FONT>
<BR><FONT SIZE=2>    timers, transport checks, etc.</FONT>
<BR><FONT SIZE=2>* When using ZCopy SDP, then the HCA HW can also take</FONT>
<BR><FONT SIZE=2>   care of copying the data from one process address space</FONT>
<BR><FONT SIZE=2>   Into other process address space.</FONT>
</P>

<P><FONT SIZE=2>When two processes communicate through TCP locally, all </FONT>
<BR><FONT SIZE=2>transport is taken care of by the TCP layer, which adds some </FONT>
<BR><FONT SIZE=2>overhead. Data is copied by the CPU. Looping back happens</FONT>
<BR><FONT SIZE=2>at the IP layer and is internal to the OS. Nothing goes down</FONT>
<BR><FONT SIZE=2>to the networking driver.</FONT>
</P>

<P><FONT SIZE=2>I'd also mention that SDP will transfer data through the PCI bus</FONT>
<BR><FONT SIZE=2>where TCP will use the CPU bus move the data.</FONT>
</P>

<P><FONT SIZE=2>I don't have any performance numbers. It can be interesting to</FONT>
<BR><FONT SIZE=2>measure bandwidth and CPU utilization at various message</FONT>
<BR><FONT SIZE=2>sizes.</FONT>
</P>

<P><FONT SIZE=2>-Dror</FONT>
</P>

</BODY>
</HTML>