Michael Chan broadcom.com> writes:
>
> Turning off ASF is just a matter of changing some bits in NVRAM
> and recalculating the checksum. If you need the tool to do this,
> I'll have someone send it to you.
>
> Note that on some of the blade servers, I believe ASF is vital
> and should not be disabled.
Still, it would be great if ASF could be disabled, because I have
noticed that when ASF is enabled, the tg3 driver automatically disables
TSO (TCP Segmentation Offloading). Here is a dmesg output from a server
where I am seeing that behavior:
eth0: Tigon3 [partno(BCM95704A6) rev 2100 PHY(5704)] (PCIX:133MHz:64-bit) \
10/100/1000BaseT Ethernet 00:30:48:59:c4:94
eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] Split[0] WireSpeed[1] TSOcap[0]
[...]
eth1: Tigon3 [partno(BCM95704A6) rev 2100 PHY(5704)] (PCIX:133MHz:64-bit) \
10/100/1000BaseT Ethernet 00:30:48:59:c4:95
eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] Split[0] WireSpeed[1] TSOcap[1]
Both interfaces are fundamentally TSO-capable, but since ASF is enabled
on eth0, tg3 disables TSO on this interface. Of course at this point it
is not even possible to use ethtool to re-enable it because the driver
considers eth0 as not TSO-capable at all.
As far as I know, the tg3 driver has been doing that since one of your
patches shipped with 2.6.11-rc2-bk3, Michael, see [1]. Here is the relevant
code snippet (line numbers are for 2.6.16):
10835 if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) {
10836 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
10837 }
10838 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
10839 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 ||
10840 tp->pci_chip_rev_id == CHIPREV_ID_5705_A0 ||
10841 (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) != 0) {
10842 tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE;
10843 } else {
10844 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
10845 }
The culprit is line 10841. Why is that done ?
[1] ftp://ftp.us.kernel.org:/pub/linux/kernel/v2.6/snapshots/old/
patch-2.6.11-rc2-bk3.log, patch-2.6.11-rc2-bk3.bz2
--
Marc Bevand
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html