[eepro100] eth0: can't fill rx buffer (force 1)!
NortonNg
jkng@csie.nctu.edu.tw
Fri, 27 Oct 2000 14:05:46 +0800 (CST)
I am using eepro100 for Intel 82559 chip NIC (but the driver said that it
was 82557 ), Redhat 7.0 Kernel 2.2.17 (patched from 2.2.16). After I do some
modification in dev.c for my packet dispatcher, when i run the nttcp
(performance benchmark) several times (about transfered 400mega bits),
both the gateway system will crash !! my configuration is below..
hostA<----->(eth1)IPSec gatewayA(eth0)<--->(eth0)IPSec GatewayB<-->hostB
the error messages of IPSec gateway A are:
eth0: can't fill rx buffer (force 1)!
eth0: can't fill rx buffer (force 1)!
eth0: can't fill rx buffer (force 1)!
eth0: can't fill rx buffer (force 1)!
.....
....
eth1: card reports no resources
...
..
VM: do_try_to_free_pages failed for kswapd
VM: do_try_to_free_pages failed for kswapd
VM: do_try_to_free_pages failed for kswapd
VM: do_try_to_free_pages failed for kswapd
.....
Sometimes when the "VM: do_try_to_free_pages.." messages are not occur,
i can restart eth1 of gateway A by ping hostA from gateway A.
my modified dev.c are here...
void net_bh(void )
{
...
..
while( !skb_queue_empty(&backlog))
{
...
...
type = skb->protocol;
//my part begin..
if( something )
{
memcpy(skb->mac.ethernet->h_dest , my_dest_mac , 6);//dest card addr
memcpy(skb->mac.ethernet->h_source, my_src_mac, 6); //my card address
offset = (skb->data) - (skb->mac.raw);
skb_push( skb , offset );
skb->nh.raw = skb->data + ETH_HLEN;
skb->priority = 1;
dev_queue_xmit(skb);
goto skip_label;
}
//end of my part.
handle_bridge(skb,type);
...
skip_label:
} //end of loop
....
...
}
My Intel NIC
=======
eepro100.c:v1.09j-t 9/29/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html
eepro100.c: $Revision: 1.20.2.10 $ 2000/05/31 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others
eth0: Intel PCI EtherExpress Pro100 82557, 00:AE:C0:00:00:9B, I/O at 0xc000, IRQ 10.
Receiver lock-up bug exists -- enabling work-around.
Board assembly 729757-006, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x04f4518b).
eth1: Intel PCI EtherExpress Pro100 82557, 00:AE:C0:00:00:9C, I/O at 0xc400, IRQ 11.
Receiver lock-up bug exists -- enabling work-around.
Board assembly 729757-006, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x04f4518b).