linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Early SPECWeb99 results on 2.5.33 with TSO on e1000
@ 2002-09-05 18:30 Troy Wilson
  2002-09-05 20:59 ` jamal
  0 siblings, 1 reply; 102+ messages in thread
From: Troy Wilson @ 2002-09-05 18:30 UTC (permalink / raw)
  To: linux-kernel, netdev

 
  I've got some early SPECWeb [*] results with 2.5.33 and TSO on e1000.  I
get 2906 simultaneous connections, 99.2% conforming (i.e. faster than the
320 kbps cutoff), at 0% idle with TSO on.  For comparison, with 2.5.25, I 
got 2656, and with 2.5.29 I got 2662, (both 99+% conformance and 0% idle) so
TSO and 2.5.33 look like a Big Win.
 
  I'm having trouble testing with TSO off (I changed the #define NETIF_F_TSO
to "0" in include/linux/netdevice.h to turn it off).  I am getting errors.

     NETDEV WATCHDOG: eth1: transmit timed out
     e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex

  That's pushed my SPECWeb results down to below 2500 connections with TSO 
off because of those adapter resets (It is only that one adapter, BTW) and
these results (with TSO off) shouldn't be considered valid.

  eth1 is the only adapter with errors, and they all look like RX overruns.
For comparison:

eth1      Link encap:Ethernet  HWaddr 00:02:B3:9C:F5:9E  
          inet addr:192.168.4.1  Bcast:192.168.4.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:48621378 errors:8890 dropped:8890 overruns:8890 frame:0
          TX packets:64342993 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:3637004554 (3468.5 Mb)  TX bytes:1377740556 (1313.9 Mb)
          Interrupt:61 Base address:0x1200 Memory:fc020000-0 

eth3      Link encap:Ethernet  HWaddr 00:02:B3:A3:47:E7  
          inet addr:192.168.3.1  Bcast:192.168.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:37130540 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49061277 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:2774988658 (2646.4 Mb)  TX bytes:3290541711 (3138.1 Mb)
          Interrupt:44 Base address:0x2040 Memory:fe120000-0 

  I'm still working on getting a clean run with TSO off.  If anyone has any
ideas for me about the timeout errors, I'd appreciate the clue.

Thanks,

- Troy


*  SPEC(tm) and the benchmark name SPECweb(tm) are registered
trademarks of the Standard Performance Evaluation Corporation.
This benchmarking was performed for research purposes only,
and is non-compliant, with the following deviations from the
rules -

  1 - It was run on hardware that does not meed the SPEC
      availability-to-the-public criteria.  The machine is
      an engineering sample.

  2 - access_log wasn't kept for full accounting.  It was
      being written, but deleted every 200 seconds.


^ permalink raw reply	[flat|nested] 102+ messages in thread
* RE: Early SPECWeb99 results on 2.5.33 with TSO on e1000
@ 2002-09-05 20:47 Feldman, Scott
  0 siblings, 0 replies; 102+ messages in thread
From: Feldman, Scott @ 2002-09-05 20:47 UTC (permalink / raw)
  To: 'Troy Wilson'; +Cc: linux-kernel, netdev

Troy Wilson wrote:
>   I've got some early SPECWeb [*] results with 2.5.33 and TSO 
> on e1000.  I get 2906 simultaneous connections, 99.2% 
> conforming (i.e. faster than the 320 kbps cutoff), at 0% idle 
> with TSO on.  For comparison, with 2.5.25, I 
> got 2656, and with 2.5.29 I got 2662, (both 99+% conformance 
> and 0% idle) so TSO and 2.5.33 look like a Big Win.

A 10% bump is good.  Thanks for running the numbers.
  
>   I'm having trouble testing with TSO off (I changed the 
> #define NETIF_F_TSO to "0" in include/linux/netdevice.h to 
> turn it off).  I am getting errors.

Sorry, I should have made a CONFIG switch.  Just hack the driver for now to
turn it off:

--- linux-2.5/drivers/net/e1000/e1000_main.c	Fri Aug 30 19:26:57 2002
+++ linux-2.5-no_tso/drivers/net/e1000/e1000_main.c	Thu Sep  5 13:38:44
2002
@@ -428,9 +428,11 @@ e1000_probe(struct pci_dev *pdev,
 	}
 
 #ifdef NETIF_F_TSO
+#if 0
 	if(adapter->hw.mac_type >= e1000_82544)
 		netdev->features |= NETIF_F_TSO;
 #endif
+#endif
  
 	if(pci_using_dac)
 		netdev->features |= NETIF_F_HIGHDMA;

-scott

^ permalink raw reply	[flat|nested] 102+ messages in thread
* Re: Early SPECWeb99 results on 2.5.33 with TSO on e1000
@ 2002-09-06 11:44 Robert Olsson
  2002-09-06 14:37 ` Martin J. Bligh
  0 siblings, 1 reply; 102+ messages in thread
From: Robert Olsson @ 2002-09-06 11:44 UTC (permalink / raw)
  To: David S. Miller
  Cc: akpm, Martin.Bligh, hadi, tcw, linux-kernel, netdev, niv, Robert.Olsson


David S. Miller writes:
 >    Mala did some testing on this a couple of weeks back.  It appears that
 >    NAPI damaged performance significantly.
 > 
 >    http://www-124.ibm.com/developerworks/opensource/linuxperf/netperf/results/july_02/netperf2.5.25results.htm
 > 

 > Robert can comment on optimal settings

Hopefully yes...

I see other numbers so we have to sort out the differences. Andrew Morton
pinged me about this test last week. So I've had a chance to run some tests. 

Some comments:
Scale to CPU can be dangerous measure w. NAPI due to its adapting behaviour 
where RX interrupts decreases in favour of successive polls.

And NAPI scheme behaves different since we can not assume that all network 
traffic is well-behaved like TCP. System has to be manageable and to "perform"
under any network load not only for well-behaved TCP. So of course we will 
see some differences -- there are no free lunch. Simply we can not blindly
look at one test. IMO NAPI is the best overall performer. The number speaks 
for themselves.

Here is the most recent test...

NAPI kernel path is included in 2.4.20-pre4 the comparison below is mainly 
between e1000 driver w and w/o NAPI and the NAPI port to e1000 is still 
evolving. 

Linux 2.4.20-pre4/UP PIII @ 933 MHz w. Intel's e100 2 port GIGE adapter.
e1000 4.3.2-k1 (current kernel version) and current NAPI patch. For NAPI 
e1000 driver uses RxIntDelay=1. RxIntDewlay=0 caused problem. Non-NAPI
driver RxIntDelay=64. (default)

Three tests: TCP, UDP, packet forwarding.

Netperf. TCP socket size 131070, Single TCP stream. Test length 30 s.

M-size   e1000    NAPI-e1000
============================
      4   20.74    20.69  Mbit/s data received.
    128  458.14   465.26 
    512  836.40   846.71 
   1024  936.11   937.93 
   2048  940.65   939.92 
   4096  940.86   937.59
   8192  940.87   939.95 
  16384  940.88   937.61
  32768  940.89   939.92
  65536  940.90   939.48
 131070  940.84   939.74

Netperf. UDP_STREAM. 1440 pkts. Single UDP stream. Test length 30 s.
         e1000    NAPI-e1000
====================================
         955.7    955.7   Mbit/s data received.

Forwarding test. 1 Mpkts at 970 kpps injected.
          e1000   NAPI-e1000
=============================================
T-put       305   298580    pkts routed.

NOTE! 
With non-NAPI driver this system is "dead" an performes nothing.


Cheers.
						--ro



^ permalink raw reply	[flat|nested] 102+ messages in thread
* Re: Early SPECWeb99 results on 2.5.33 with TSO on e1000
@ 2002-09-06 18:35 Manfred Spraul
  2002-09-06 18:38 ` David S. Miller
  0 siblings, 1 reply; 102+ messages in thread
From: Manfred Spraul @ 2002-09-06 18:35 UTC (permalink / raw)
  To: Dave Hansen, jamal, netdev, linux-kernel

 >
> The real question is why NAPI causes so much more work for the client.
 >
[Just a summary from my results from last year. All testing with a 
simple NIC without hw interrupt mitigation, on a Cyrix P150]

My assumption was that NAPI increases the cost of receiving a single 
packet: instead of one hw interrupt with one device access (ack 
interrupt) and the softirq processing, the hw interrupt must ack & 
disable the interrupt, then the processing occurs in softirq context, 
and the interrupts are reenabled at softirq context.

The second point was that interrupt mitigation must remain enabled, even 
with NAPI: the automatic mitigation doesn't work with process space 
limited loads (e.g. TCP: backlog queue is drained quickly, but the 
system is busy processing the prequeue or receive queue)

jamal, it is possible that a driver uses both napi and the normal 
interface, or would that break fairness?
Use netif_rx, until it returns dropping. If that happens, disable the 
interrupt, and call netif_rx_schedule().

Is it possible to determine the average number of packets that are 
processed for each netif_rx_schedule()?

--
	Manfred


^ permalink raw reply	[flat|nested] 102+ messages in thread
* Early SPECWeb99 results on 2.5.33 with TSO on e1000
@ 2002-09-10 14:59 Mala Anand
  0 siblings, 0 replies; 102+ messages in thread
From: Mala Anand @ 2002-09-10 14:59 UTC (permalink / raw)
  To: inux-net, linux-kernel, netdev

I am resending this note with the subject heading, so that
it can be viewed through the subject catagory.

 > "David S. Miller" wrote:
>> NAPI is also not the panacea to all problems in the world.

   >Mala did some testing on this a couple of weeks back. It appears that
   >NAPI damaged performance significantly.



>http://www-124.ibm.com/developerworks/opensource/linuxperf/netperf/results/july_02/netperf2.5.25results.htm



>Unfortunately it is not listed what e1000 and core NAPI
>patch was used. Also, not listed, are the RX/TX mitigation
>and ring sizes given to the kernel module upon loading.
The default driver that is included in 2.5.25 kernel for Intel
gigabit adapter was used for the baseline test and the NAPI driver
was downloaded from Robert Olsson's website. I have updated my web
page to include Robert's patch. However it is given there for reference
purpose only. Except for the ones mentioned explicitly the rest of
the configurable values used are default. The default for RX/TX mitigation
is 64 microseconds and the default ring size is 80.

I have added statistics collected during the test to my web site. I do
want to analyze and understand how NAPI can be improved in my tcp_stream
test. Last year around November, when I first tested NAPI, I did find NAPI
results better than the baseline using udp_stream. However I am
concentrating on tcp_stream since that is where NAPI can be improved in
my setup. I will update the website as I do more work on this.


>Robert can comment on optimal settings
I saw Robert's postings. Looks like he may have a more recent version of
NAPI
driver than the one I used. I also see 2.5.33 has NAPI, I will move to
2.5.33
and continue my work on that.


>Robert and Jamal can make a more detailed analysis of Mala's
>graphs than I.
Jamal has questioned about socket buffer size that I used, I have tried
132k
socket buffer size in the past and I didn't see much difference in my
tests.
I will add that to my list again.


Regards,
    Mala


   Mala Anand
   IBM Linux Technology Center - Kernel Performance
   E-mail:manand@us.ibm.com
   http://www-124.ibm.com/developerworks/opensource/linuxperf
   http://www-124.ibm.com/developerworks/projects/linuxperf
   Phone:838-8088; Tie-line:678-8088






^ permalink raw reply	[flat|nested] 102+ messages in thread

end of thread, other threads:[~2002-09-17 10:34 UTC | newest]

Thread overview: 102+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-05 18:30 Early SPECWeb99 results on 2.5.33 with TSO on e1000 Troy Wilson
2002-09-05 20:59 ` jamal
2002-09-05 22:11   ` Troy Wilson
2002-09-05 22:39     ` Nivedita Singhvi
2002-09-05 23:01       ` Dave Hansen
2002-09-05 22:48   ` Nivedita Singhvi
2002-09-06  1:47     ` jamal
2002-09-06  3:38       ` Nivedita Singhvi
2002-09-06  3:58         ` David S. Miller
2002-09-06  4:20           ` Nivedita Singhvi
2002-09-06  4:17             ` David S. Miller
2002-09-07  0:05         ` Troy Wilson
2002-09-06  3:56       ` David S. Miller
2002-09-06  3:47   ` David S. Miller
2002-09-06  6:48     ` Martin J. Bligh
2002-09-06  6:51       ` David S. Miller
2002-09-06  7:36         ` Andrew Morton
2002-09-06  7:22           ` David S. Miller
2002-09-06  9:54             ` jamal
2002-09-06 14:29         ` Martin J. Bligh
2002-09-06 15:38           ` Dave Hansen
2002-09-06 16:11             ` Martin J. Bligh
2002-09-06 16:21             ` Nivedita Singhvi
2002-09-06 15:29       ` Dave Hansen
2002-09-06 16:29         ` Martin J. Bligh
2002-09-06 17:36           ` Dave Hansen
2002-09-06 18:26             ` Andi Kleen
2002-09-06 18:31               ` John Levon
2002-09-06 18:33               ` Dave Hansen
2002-09-06 18:36                 ` David S. Miller
2002-09-06 18:45                   ` Martin J. Bligh
2002-09-06 18:43                     ` David S. Miller
2002-09-06 19:19               ` Nivedita Singhvi
2002-09-06 19:21                 ` David S. Miller
2002-09-06 19:45                   ` Nivedita Singhvi
2002-09-06 19:26                 ` Andi Kleen
2002-09-06 19:24                   ` David S. Miller
2002-09-06 19:45                 ` Martin J. Bligh
2002-09-06 17:26       ` Gerrit Huizenga
2002-09-06 17:37         ` David S. Miller
2002-09-06 18:19           ` Gerrit Huizenga
2002-09-06 18:26             ` Martin J. Bligh
2002-09-06 18:36               ` David S. Miller
2002-09-06 18:51                 ` Martin J. Bligh
2002-09-06 18:48                   ` David S. Miller
2002-09-06 19:05                     ` Gerrit Huizenga
2002-09-06 19:01                       ` David S. Miller
2002-09-06 20:29                   ` Alan Cox
2002-09-06 18:34             ` David S. Miller
2002-09-06 18:57               ` Gerrit Huizenga
2002-09-06 18:58                 ` David S. Miller
2002-09-06 19:52                   ` Gerrit Huizenga
2002-09-06 19:49                     ` David S. Miller
2002-09-06 20:03                       ` Gerrit Huizenga
2002-09-06 23:48       ` Troy Wilson
2002-09-11  9:11       ` Eric W. Biederman
2002-09-11 14:10         ` Martin J. Bligh
2002-09-11 15:06           ` Eric W. Biederman
2002-09-11 15:15             ` David S. Miller
2002-09-11 15:31               ` Eric W. Biederman
2002-09-11 15:27             ` Martin J. Bligh
2002-09-12  7:28     ` Todd Underwood
2002-09-12 12:30       ` jamal
2002-09-12 13:57         ` Todd Underwood
2002-09-12 14:11           ` Alan Cox
2002-09-12 14:41             ` todd-lkml
2002-09-12 23:12         ` David S. Miller
2002-09-13 21:59           ` todd-lkml
2002-09-13 22:04             ` David S. Miller
2002-09-15 20:16               ` jamal
2002-09-16  4:23                 ` David S. Miller
2002-09-16 14:16               ` todd-lkml
2002-09-16 19:52                 ` David S. Miller
2002-09-16 21:32                   ` todd-lkml
2002-09-16 21:29                     ` David S. Miller
2002-09-16 22:53                     ` David Woodhouse
2002-09-16 22:46                       ` David S. Miller
2002-09-16 23:03                       ` David Woodhouse
2002-09-16 23:08                         ` Jeff Garzik
2002-09-16 23:02                           ` David S. Miller
2002-09-16 23:48                             ` Jeff Garzik
2002-09-16 23:43                               ` David S. Miller
2002-09-17  0:01                                 ` Jeff Garzik
2002-09-17 10:31                   ` jamal
2002-09-13 22:12             ` Nivedita Singhvi
2002-09-12 17:18       ` Nivedita Singhvi
2002-09-06 23:56   ` Troy Wilson
2002-09-06 23:52     ` David S. Miller
2002-09-07  0:18     ` Nivedita Singhvi
2002-09-07  0:27       ` Troy Wilson
2002-09-05 20:47 Feldman, Scott
2002-09-06 11:44 Robert Olsson
2002-09-06 14:37 ` Martin J. Bligh
2002-09-06 15:38   ` Robert Olsson
2002-09-06 18:35 Manfred Spraul
2002-09-06 18:38 ` David S. Miller
2002-09-06 19:40   ` Manfred Spraul
2002-09-06 19:34     ` David S. Miller
2002-09-10 12:02       ` Robert Olsson
2002-09-10 16:55         ` Manfred Spraul
2002-09-11  7:46           ` Robert Olsson
2002-09-10 14:59 Mala Anand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).