What are the issues related to increasing Rx ring size ?
"Amitava Biswas" <[email protected]> Thu, 23 Sep 2004 09:08:30 -0400
| Newsgroups | gmane.linux.drivers.vortex.devel |
|---|---|
| Message-ID | <001101c4a16e$6d786de0$6401a8c0@big> |
This is a multi-part message in MIME format. --===============1372890035== Content-Type: multipart/alternative; boundary="----=_NextPart_000_000E_01C4A14C.E5529EC0" This is a multi-part message in MIME format. ------=_NextPart_000_000E_01C4A14C.E5529EC0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, I have gone through the source code of 3c905 driver. I want to use this driver under a situation when packets arrive in = bursts (few hundered to say one thousand small (64Byte) packets in one = burst). I want to avoid loss of packets, so I want to increase the = receive ring size. I have the following questions- 1) Assuming that I have lots of RAM and take care of the protocol and = socket processing layers (increase the socket buffer sizes there too, by = making changes in kernel and libraries),=20 I also assume that lots of "sk_buff"s have already been preallocated so = that the interrupt portion of code does not get performance hits due to = on the fly alloc, and I also assume that rest of the code is fast enough = to respond to fast interrupt rates. Can I increase the Rx ring size to 1024 ? If not why ? What is the limit = ?=20 ****Does the NIC design aspects limits this ? To be specific what is the maximum number of receive descriptors the NIC = (say 3c905B-TX) can handle ? I understand the NIC firmware has been = designed in such way that it can operate on, say maximum "n" = descriptors, till they are cleared by the driver interrupt handler (is = this correct ?). ***What is the value of "n" for a typical 3c9XX NIC ? Perhaps this simple information is available in the NIC specs, which is = not a public domain doc. I am expecting that some driver writer has = this, and can kindly share this information or the document itself or a = tip on how to get it from 3 com (I would be grateful). 2) What are the other issues which may be the hurdles or constraints to = the driver operation with large Rx ring size ? These may be both - = system / resource constraints and performance constraints. Thanks for your time. Regards Amitava Biswas ------=_NextPart_000_000E_01C4A14C.E5529EC0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Diso-8859-1" = http-equiv=3DContent-Type> <META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT face=3DArial size=3D2>Hi,</FONT></DIV> <DIV><FONT face=3DArial size=3D2>I have gone through the source code of = 3c905=20 driver.</FONT></DIV> <DIV><FONT face=3DArial size=3D2>I want to use this driver under a = situation when=20 packets arrive in bursts (few hundered to say one thousand small = (64Byte)=20 packets in one burst). I want to avoid loss of packets, so I want to = increase=20 the receive ring size. I have the following questions-</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>1) Assuming that I have lots of RAM and = take care=20 of the protocol and socket processing layers (increase the socket buffer = sizes=20 there too, by making changes in kernel and libraries),=20 <DIV><FONT face=3DArial size=3D2>I also assume that lots of "sk_buff"s = have already=20 been preallocated so that the interrupt portion of code does not get = performance=20 hits due to on the fly alloc, and I also assume that rest of the code is = fast=20 enough to respond to fast interrupt rates.</FONT></DIV> <DIV> </DIV>Can I increase the Rx ring size to 1024 ? If not why ? = What is=20 the limit ? </FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>****Does the NIC design aspects limits = this=20 ?</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>To be specific what is the maximum = number of=20 receive descriptors the NIC (say 3c905B-TX) can handle ? I understand = the NIC=20 firmware has been designed in such way that it can operate on, say = maximum "n"=20 descriptors, till they are cleared by the driver interrupt handler (is = this=20 correct ?).</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>***What is the value of "n" for a = typical 3c9XX NIC=20 ?</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Perhaps this simple information is = available in the=20 NIC specs, which is not a public domain doc. I am expecting that some = driver=20 writer has this, and can kindly share this information or the document = itself or=20 a tip on how to get it from 3 com (I would be grateful).</FONT></DIV> <DIV> </DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>2) What are the other issues which may = be the=20 hurdles or constraints to the driver operation with large Rx ring size = ? These=20 may be both - system / resource constraints and performance=20 constraints.</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Thanks for your time.</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Regards</FONT></DIV> <DIV><FONT face=3DArial size=3D2>Amitava = Biswas</FONT></DIV></BODY></HTML> ------=_NextPart_000_000E_01C4A14C.E5529EC0-- --===============1372890035== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ vortex mailing list [email protected] http://www.scyld.com/mailman/listinfo/vortex --===============1372890035==--