Results 1 to 3 of 3
Hi,
I have a system that has 4 identical ethernet cards (Intel 82555).
eth0 and eth3 talk IP and eth1 ann eth2 are not IP but talk a
proprietary protocol. ...
- 11-22-2004 #1Just Joined!
- Join Date
- Nov 2004
- Posts
- 2
Ethernet Receive Buffer Overruns
Hi,
I have a system that has 4 identical ethernet cards (Intel 82555).
eth0 and eth3 talk IP and eth1 ann eth2 are not IP but talk a
proprietary protocol. I get receive overruns on the interfaces eth2
and eth3. The application that talks on these interfaces sends out a
request message to which 100's of production machines send a response
(size MTU + sizeof(ethernet header)). This sudden burst of response
overwhelms the receiver and it drops the packets.
I tried changing the CPU Saver Bundle size and also the Interrupt
Delay time. Also i tried changing the kernel level buffers. All this
to no avail. I am not sure if using a faster card would relieve or
increase the problem.
Do you have any suggestions on how to solve the problem? Also do you
need any more details? The system runs a custom linux kernel 2.4.18.
The overrun errors also occur with the 2.4.21 kernel. The e100 driver
version is: 2.3.40 and bus-info: 02:08.0 as given by ethtool. All the interaces are 100 Mbps Full Duplex. No overruns are seen on the IP segment, but its not bursty even though has significantly higher traffic that eth1 and eth2. I've tried almost everything i can think of. Thanks in advance,
Amit
- 11-22-2004 #2Linux Engineer
- Join Date
- Sep 2003
- Location
- Knoxhell, TN
- Posts
- 1,078
Can you change the timing of the production machines' response so that they respond in series rather than all at once? if you could time it right, you wouldn't hit the choke point and could still receive all of the responses...
also, try splitting the load onto several boxen rather than just the one.. if you could have four boxen doing the job, then you wouldn't have to worry so much about the load spikes... (maybe.)
you could also try Gb Ethernet cards....Their code will be beautiful, even if their desks are buried in 3 feet of crap. - esr
- 11-23-2004 #3Just Joined!
- Join Date
- Nov 2004
- Posts
- 2
Hi, Thanks for the reply.
I cannot change the timing as these are 1000 production machines operating independently. Also its only once machine through one interface that has to receive it. If at all I can change the card, making it a GB card would make the data come in faster (corerct me if i am wrong). I guess the only thing that appears to me right now that could have an effect is to increase the number of ring buffers to equal the number of production machines. this might give the kernel enough memory and time to read packets from the ring buffers. Does it sound logical??
-Amit


Reply With Quote
