[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).