Re: eepro100 woes -> linux memory issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At 10:23 PM 09/07/2000 +0100, Alan Cox wrote:
>> >Your explanation doesn't fit your observations. I suspect #2 may have some
>> >significance but that would be unrelated to the rate of resource usage.
>> 
>> Then why does inserting a "mark_bh" after a kfree_skb alleviate the problem
>> somewhat? it certainly doesnt add to the performance.
>
>The mark_bh is already there. it sounds ot me like you are changing timing
>patterns by causing a cpu stall on the memory bus
> 

No, its not.

I know you are busy, but it would be helpful if you actually read what I
wrote before you answer. 

We have modifyed to ethernet driver to check the address before queuing the
packet. There is virtually no overhead. Plus, when packets ARENT freed
(such as when they are forwarded) a much more cpu intensive operation of
cloning the packet and queuing it is done instead, and there are no
problems doing > 100K pps. so its not causing any cpu stalls.


Here's a test that even the college freshmen can understand:

1) Set up a box with an eepro100 as a second card and modify the driver by
simply replacing netif_rx() with kfree_skb(). My system is a 200Mhz Pentium

skb->protocol.....
kfree_skb(skb);
sp->stats.rx_packets++
yada, yada, yada....

2)  give the card an address with an ifconfig in rc.local
3) wire the box to another box or hub/switch @ 100Mb/s
4) setup a traffic generater on the wire and force the mac address to
either broadcast or the mac address of the eepro card ie "arp -s
207.11.14.1 ff:ff:ff:ff:ff:ff" so that the card will get the packets. You
can check the rxpacket count with ifconfig to verify that the card is
receiving the packets.
5) fire packets at the eepro100 card...my test was about 4000pps.
6) reboot the linux box

virtually every time, the eepro driver will complain about "no resources"
before the login prompt is displayed.

7) now, modify the driver to include a mark_bh()

skb->protocol.....
kfree_skb(skb);
mark_bh(NET_BH);
sp->stats.rx_packets++
yada, yada, yada....

the complaints are noticably less.


DB


-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux