Perfomance regression between 2.2 and 2.4?
Gilad Ben-Yossef <[email protected]> Tue, 16 Dec 2003 15:51:48 +0200
| Newsgroups | gmane.linux.drivers.tulip.general |
|---|---|
| Organization | Codefidence. A name you can trust(tm) |
| Message-ID | <[email protected]> |
Howdie, I have a system with a Tulip chipset based NIC which I've been using with the v0.97 version of the Tulip driver on 2.2.x kernel. I'm trying to move over to the 2.4.x kernels and discovered that using the very same driver gives reduced performance on 2.4 then I got on 2.2: on 2.2 I can forward (IP routing) 65k frames/sec with no loss, on 2.4 I can only get 50k frames/sec before loss starts). This regression is only visible if I try to route the frames so that they are received and transmitted on the same interface. If I try receiving on one interface and send on another (both are tulip chipset based - see below for the details) there is no performance difference between 2.2 and 2.4 and we can move 65k in both cases. Hardware setup: Pentium III, DECchip 21142/43 (rev 65). Testing setup: Shomiti (network traffic generator), is connected to eth2 on a Linux station. All sent packets to the Linux station and the received packets from it are recorded. Small valid UDP packets (64 bytes long) with src 192.168.2.100 and dst 192.168.3.100 are sent to the Linux. A proper forwarded packets is received from the Linux. Linux configuration: ifconfig eth2 192.168.2.2 up ifconfig eth2:1 192.168.3.3 up arp -s 192.168.2.100 22:22:22:22:22:22 arp -s 192.168.3.100 33:33:33:33:33:33 Compiler and linker: gcc-2.95.3 and binutils-2.9.1.0.25. Now, I'm not really sure if this is really a tulip driver problem. I've actually ran into the problem with a modified old version of the tulip driver I've "inherited" (which is polling based and not interrupt based and I'd be happy to supply in case anyone is interested but it doesn't seem relevant to the problem at hand), but the very same behavior happens with the current version from the Scyld web site. As I mentioned, this only happen if both Rx and Tx are done on the same interface. On 2.2 the performance penalty for this is small, on 2.4 it's 15k frames/sec. Any feedback as to what might be causing it and how it can be fixed will be greatly appreciated. I'd be happy to supply any information request or code my way through debugging it - I just need a direction to look into :-) Many thanks, Gilad -- Gilad Ben-Yossef <[email protected]> Codefidence. A name you can trust (tm) http://www.codefidence.com _______________________________________________ tulip mailing list, [email protected] To change to digest mode or unsubscribe visit http://www.scyld.com/mailman/listinfo/tulip