netdev
[Top] [All Lists]

Perf data with recent tg3 patches

To: davem@xxxxxxxxxxxxx, mchan@xxxxxxxxxxxx
Subject: Perf data with recent tg3 patches
From: Arthur Kepner <akepner@xxxxxxx>
Date: Thu, 12 May 2005 19:49:57 -0700 (PDT)
Cc: netdev@xxxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx

Several tg3 patches have been recently posted, and I've 
collected a bit of performance data with them. Mostly 
I'm concerned about reducing per-interrupt overhead 
(due to PIOs), and CPU Utilization, so the following data 
shows how these patches change the number of received 
packets/interrupt and CPU utilization.

(Let me know if I've missed any relevant patches.) 

The data is labelled as follows:
-------------------------------
base                : "vanilla" 2.6.12-rc2 kernel
base+mchan1-3       : 2.6.12-rc2 kernel + 3 patches 
                      from mchan [1]
base+mchan1-3+tagged: 2.6.12-rc2 + 3 patches
                      from mchan [1] + tagged status 
                      patch from davem [2]
base+mchan1-3+coal  : 2.6.12-rc2 + 3 patches
                      from mchan [1] + tg3 interrupt 
                      coalescence patch [3] 

[1] http://marc.theaimsgroup.com/?l=linux-netdev&m=111446723510962&w=2
(This is one of a series of 3 patches - the others can't be 
found in the archive. But they're all in 2.6.12-rc4.)
[2] http://marc.theaimsgroup.com/?l=linux-netdev&m=111567944730302&w=2
[3] http://marc.theaimsgroup.com/?l=linux-netdev&m=111586526522981&w=2

The system I used was an Altix with 1300MHz CPUs, and 
a 5704 Broadcom NIC. The workload was bulk data receive 
via TCP, with 1500 a byte MTU.

The following tables summarize the data in the attached 
graphs. I had to (grossly) interpolate in some cases, 
see the graphs for the real data. 

                            CPU Util[%]
               -------------------------------------
               base      base+      base+      base+
                       mchan1-3  mchan1-3+  mchan1-3+
Link Util[%]                      tagged       coal
=====================================================
    40         36        34        41          27
    60         48        45        50          35
    80         58        56        58          40
    90         59        58        63          42
    95         -         57        -           42


                            Packets/Intr
               -------------------------------------
               base      base+      base+      base+
                       mchan1-3  mchan1-3+  mchan1-3+
Link Util[%]                      tagged       coal
=====================================================
    40         2.2       2.3        1.4       3.4
    60         2.7       2.9        1.8       4.1
    80         3.0       3.2        2.3       5.2
    90         3.1       3.4        2.4       6.2
    95          -        3.5         -        6.6


"mchan1-3" gets us up to ~.5 more packets/interrupt, 
and adding the "coal" patch ~3.5 more. The "tagged" 
patch made things a bit worse, though I haven't pinned 
down exactly why that is. Processing more packets per 
interrupt results in lower CPU utilization, largely 
because we spend less time waiting for PIOs to flush.


--
Arthur

Attachment: cpu_vs_link.2.png
Description: CPU utilization

Attachment: packets_vs_link.2.png
Description: Received Packets/Interrupt

<Prev in Thread] Current Thread [Next in Thread>