RE: [Bonding-devel][PATCH]Zero Copy Transmit Support (Update)

Godse, Radheka
2004-11-18T19:28:49Z

> -
> +
> + /* We let the bond device publish all hardware
> + * acceleration features possible. This is OK,
> + * since if an skb is passed from the bond to
> + * a slave that doesn't support one of those
> + * features, everything is fixed in the
> + * dev_queue_xmit() function (e.g. calculate
> + * check sum, linearize the skb, etc.).
> + */

This is very inefficient if the bond slaves don't
support these features.

I believe you when you say you saw improvement in the
case where the slaves do support TSO, but if you test
a non-TSO slave case I bet you'll see a marked
decrease in system utilization at least.
...

Note: 2.6.2 patch enables Zero Copy Transmit support by default while
registering the bond device... but, I continue to see better CPU
utilization (~50% improvement) when this patch was tested in various
scenarios(see data below). Test results are from a dual Itanium 2 1.4GHz
system but I saw a similar trend on a PIII Xeon 550MHz x 8 system.

bond-patch-2.6.1 and 82546EB Copper NICs with hardware acceleration
support,
Test results with TSO on and off
ETH1 ETH2 Throughput/Performance System Utilization
on off 1870 35 %
on on 1870 35 %
off off 1871 34 %

bond-patch-2.6.2 and 82546EB Copper NICs with hardware acceleration
support,
Test results with TSO on and off
ETH1 ETH2 Throughput/Performance System Utilization
on off 1879 14 %
on on 1880 14.08 %
off off 1879 13 %
------------------------------------------------------------------

bond-patch-2.6.1 and 82543GC NICs without hardware support for TSO
ETH1 ETH2 Throughput/Performance System Utilization
off off 1815 36.85 %

bond-patch-2.6.2 and 82543GC NICs without hardware support for TSO
ETH1 ETH2 Throughput/Performance System Utilization
off off 1848 11.85 %
------------------------------------------------------------------

bond-patch-2.6.1, and one 82546EB NIC with & one 82543GC NIC without
hardware support for TSO
ETH1 ETH2 Throughput/Performance System Utilization

on off 1817 30.69 %

bond-patch-2.6.2, and one 82546EB NIC with & one 82543GC NIC without
hardware support for TSO
ETH1 ETH2 Throughput/Performance System Utilization
on off 1836 24.54 %
------------------------------------------------------------------

bond-patch-2.6.1 and 82543GC NICs
Test results with all HW acceleration bits on for 1 NIC and turned off
for the other NIC
ETH1 ETH2 Throughput/Performance System Utilization
on off 1851 35 %

bond-patch-2.6.2 and 82543GC NICs
Test results with all HW acceleration bits on for 1 NIC and turned off
for the other NIC
ETH1 ETH2 Throughput/Performance System Utilization
on off 1822 17 %
------------------------------------------------------------------

bond-patch-2.6.1 and 82543GC NICs
Test results with all HW acceleration bits turned off for both NICs
ETH1 ETH2 Throughput/Performance System Utilization
off off 1816 35 %

bond-patch-2.6.2 and 82543GC NICs
Test results with all HW acceleration bits turned off for both NICs
ETH1 ETH2 Throughput/Performance System Utilization
off off 1604 16.23 %