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>&nbsp;</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>&nbsp;</DIV>Can I increase the Rx ring size to 1024 ? If not why ? =
What is=20
the limit ? </FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>****Does the NIC design aspects limits =
this=20
?</FONT></DIV>
<DIV>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>***What is the value of "n" for a =
typical 3c9XX NIC=20
?</FONT></DIV>
<DIV>&nbsp;</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>&nbsp;</DIV>
<DIV>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Thanks for your time.</FONT></DIV>
<DIV>&nbsp;</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==--