2002-10-04 04:14:08

by Ben Greear

[permalink] [raw]
Subject: tg3 and Netgear GA302T x 2 locks machine

Got my two new Netgear GA302t nics today. They seem to use the
tg3 driver....

I put them into the 64/66 slots on my Tyan dual amd motherboard..
Running kernel 2.4.20-pre8

eth2 is plugged into eth3 over cross-over cable.

The tg3 found and used them, mostly:

tg3.c:v1.1 (Aug 30, 2002)
eth2: Tigon3 [partno(AC91002A1) rev 0105 PHY(5701)] (PCI:66MHz:32-bit) 10/100/1000BaseT Ethernet 00:40:f4:47:20:56
eth3: Tigon3 [partno(AC91002A1) rev 0105 PHY(5701)] (PCI:66MHz:32-bit) 10/100/1000BaseT Ethernet 00:40:f4:47:22:fd
tg3: eth3: Link is up at 1000 Mbps, full duplex.
tg3: eth3: Flow control is off for TX and off for RX.
...
tg3: eth3: Link is up at 1000 Mbps, full duplex.
tg3: eth3: Flow control is off for TX and off for RX.
tg3: eth3: Link is down.
tg3: eth3: Link is up at 1000 Mbps, full duplex.
tg3: eth3: Flow control is on for TX and on for RX.

I tried to start traffic with pktgen, and the machine hangs solid.
The last thing I see is:

[root@localhost root]# tg3: eth2: transmit timed out, resetting


Any ideas? Is this NIC supposed to work with tg3?

Thanks,
Ben


--
Ben Greear <[email protected]> <Ben_Greear AT excite.com>
President of Candela Technologies Inc http://www.candelatech.com
ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear



2002-10-04 05:01:00

by Ben Greear

[permalink] [raw]
Subject: Re: tg3 and Netgear GA302T x 2 locks machine

Ben Greear wrote:
> Got my two new Netgear GA302t nics today. They seem to use the
> tg3 driver....

Changed the PCI slot of eth2 to a 32-bit slot, and now it works better...

It passed packets for about 20 seconds, then spit out a bunch of these:

tg3: eth3: Error, poll already scheduled
tg3: eth2: Error, poll already scheduled
tg3: eth2: Error, poll already scheduled
tg3: eth2: Error, poll already scheduled
tg3: eth3: Error, poll already scheduled
tg3: eth2: Error, poll already scheduled
tg3: eth2: Error, poll already scheduled
tg3: eth3: Error, poll already scheduled
tg3: eth2: Error, poll already scheduled
tg3: eth2: Error, poll already scheduled

... Then the machine locked hard


Ben

--
Ben Greear <[email protected]> <Ben_Greear AT excite.com>
President of Candela Technologies Inc http://www.candelatech.com
ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear


2002-10-04 15:47:12

by James Morris

[permalink] [raw]
Subject: Re: tg3 and Netgear GA302T x 2 locks machine

On Thu, 3 Oct 2002, Ben Greear wrote:

> Changed the PCI slot of eth2 to a 32-bit slot, and now it works
> better...
>
> It passed packets for about 20 seconds, then spit out a bunch of these:
>

Which kernel version? There was a lockup problem for the GA302T just
after NAPI went in (which was fixed soon after).


- James
--
James Morris
<[email protected]>


2002-10-04 21:26:22

by David Miller

[permalink] [raw]
Subject: Re: tg3 and Netgear GA302T x 2 locks machine

From: Ben Greear <[email protected]>
Date: Thu, 03 Oct 2002 21:19:37 -0700

Got my two new Netgear GA302t nics today. They seem to use the
tg3 driver....

I put them into the 64/66 slots on my Tyan dual amd motherboard..
Running kernel 2.4.20-pre8

You reported the other week problems with two Acenic's in
this same machine right? The second Acenic wouldn't even probe
properly. And the two Acenic's were identical.

I see a pattern developing... :-)

2002-10-05 01:14:43

by James Morris

[permalink] [raw]
Subject: Re: tg3 and Netgear GA302T x 2 locks machine

On Fri, 4 Oct 2002, David S. Miller wrote:

> From: Ben Greear <[email protected]>
> Date: Thu, 03 Oct 2002 21:19:37 -0700
>
> Got my two new Netgear GA302t nics today. They seem to use the
> tg3 driver....
>
> I put them into the 64/66 slots on my Tyan dual amd motherboard..
> Running kernel 2.4.20-pre8
>
> You reported the other week problems with two Acenic's in
> this same machine right? The second Acenic wouldn't even probe
> properly. And the two Acenic's were identical.
>

FWIW, my GA302T seems fine with the kernel he originally reported
(2.4.20-pre8).


- James
--
James Morris
<[email protected]>


2002-10-05 01:17:38

by David Miller

[permalink] [raw]
Subject: Re: tg3 and Netgear GA302T x 2 locks machine

From: James Morris <[email protected]>
Date: Sat, 5 Oct 2002 11:20:06 +1000 (EST)

On Fri, 4 Oct 2002, David S. Miller wrote:

> You reported the other week problems with two Acenic's in
> this same machine right? The second Acenic wouldn't even probe
> properly. And the two Acenic's were identical.

FWIW, my GA302T seems fine with the kernel he originally reported
(2.4.20-pre8).

Yes but are you running parallel pktgen streams on two
tg3's? :-)

Ben, by chance, does reverting the patch below cure your problems?

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.670 -> 1.671
# drivers/net/tg3.c 1.35 -> 1.36
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/09/17 [email protected] 1.671
# [TIGON3]: Optimize NAPI irq masking a bit.
# --------------------------------------------
#
diff -Nru a/drivers/net/tg3.c b/drivers/net/tg3.c
--- a/drivers/net/tg3.c Fri Oct 4 18:18:26 2002
+++ b/drivers/net/tg3.c Fri Oct 4 18:18:26 2002
@@ -234,9 +234,23 @@
tw32(GRC_LOCAL_CTRL,
tp->grc_local_ctrl | GRC_LCLCTRL_SETINT);
}
-#if 0
tr32(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW);
-#endif
+}
+
+static inline void tg3_mask_ints(struct tg3 *tp)
+{
+ tw32(TG3PCI_MISC_HOST_CTRL,
+ (tp->misc_host_ctrl | MISC_HOST_CTRL_MASK_PCI_INT));
+}
+
+static inline void tg3_unmask_ints(struct tg3 *tp)
+{
+ tw32(TG3PCI_MISC_HOST_CTRL,
+ (tp->misc_host_ctrl & ~MISC_HOST_CTRL_MASK_PCI_INT));
+ if (tp->hw_status->status & SD_STATUS_UPDATED) {
+ tw32(GRC_LOCAL_CTRL,
+ tp->grc_local_ctrl | GRC_LCLCTRL_SETINT);
+ }
}

static void tg3_switch_clocks(struct tg3 *tp)
@@ -2093,7 +2107,7 @@

if (done) {
netif_rx_complete(netdev);
- tg3_enable_ints(tp);
+ tg3_unmask_ints(tp);
}

spin_unlock_irq(&tp->lock);
@@ -2120,11 +2134,10 @@
return;

if (netif_rx_schedule_prep(dev)) {
- /* NOTE: This write is posted by the readback of
+ /* NOTE: These writes are posted by the readback of
* the mailbox register done by our caller.
*/
- tw32(TG3PCI_MISC_HOST_CTRL,
- (tp->misc_host_ctrl | MISC_HOST_CTRL_MASK_PCI_INT));
+ tg3_mask_ints(tp);
__netif_rx_schedule(dev);
} else {
printk(KERN_ERR PFX "%s: Error, poll already scheduled\n",

2002-10-05 05:45:28

by Ben Greear

[permalink] [raw]
Subject: Re: tg3 and Netgear GA302T x 2 locks machine

James Morris wrote:
> On Thu, 3 Oct 2002, Ben Greear wrote:
>
>
>>Changed the PCI slot of eth2 to a 32-bit slot, and now it works
>>better...
>>
>>It passed packets for about 20 seconds, then spit out a bunch of these:
>>
>
>
> Which kernel version? There was a lockup problem for the GA302T just
> after NAPI went in (which was fixed soon after).

This was 2.4.20-pre8, ie quite recent. I didn't see any mention of
tg3 in the pre9 patch that just came out.

I'm beginning to think SMP may not be worth it...will try in my trusty
P-IV single-processor cheap-o box next.

Ben

>
>
> - James


--
Ben Greear <[email protected]> <Ben_Greear AT excite.com>
President of Candela Technologies Inc http://www.candelatech.com
ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear