[vortex] Strange problem with 3c905A
Ville Herva
vherva@v.iki.fi
Sun, 5 Aug 2001 22:53:47 +0300
[I'll read the archive, but please Cc me]
kernel 2.2.8pre19 + it's stock 3c59x.c, SMP, 3c905A.
I've been using this particular 3c905A for years and this configuration
(2x466Celeron etc, 3c905A connected to a Nokia ADSL box) nearly for a year.
I've never seen this happen before. In short: the box had been up for 10
days without a hitch. Then, all of a sudden, it begun losing 50%-90% of the
packets (according to ping), and I found these in dmesg:
----------------------------------------------------------------------
us 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 848 current 848.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000047 status 00000047
1: @d94c7210 length 80000047 status 00000047
2: @d94c7220 length 80000047 status 00000047
3: @d94c7230 length 80000048 status 00000048
4: @d94c7240 length 80000042 status 00000042
5: @d94c7250 length 80000047 status 00000047
6: @d94c7260 length 80000057 status 00000057
7: @d94c7270 length 800001aa status 000001aa
8: @d94c7280 length 80000174 status 00000174
9: @d94c7290 length 80000172 status 00000172
10: @d94c72a0 length 80000174 status 00000174
11: @d94c72b0 length 80000174 status 00000174
12: @d94c72c0 length 800001ec status 000001ec
13: @d94c72d0 length 800001aa status 000001aa
14: @d94c72e0 length 80000047 status 80000047
15: @d94c72f0 length 80000042 status 80000042
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 864 current 864.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000047 status 00000047
1: @d94c7210 length 80000048 status 00000048
2: @d94c7220 length 80000047 status 00000047
3: @d94c7230 length 80000047 status 00000047
4: @d94c7240 length 80000057 status 00000057
5: @d94c7250 length 80000048 status 00000048
6: @d94c7260 length 80000047 status 00000047
7: @d94c7270 length 80000047 status 00000047
8: @d94c7280 length 80000042 status 00000042
9: @d94c7290 length 80000057 status 00000057
10: @d94c72a0 length 80000048 status 00000048
11: @d94c72b0 length 80000047 status 00000047
12: @d94c72c0 length 80000174 status 00000174
13: @d94c72d0 length 80000174 status 00000174
14: @d94c72e0 length 80000172 status 80000172
15: @d94c72f0 length 80000174 status 80000174
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 880 current 880.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 800001aa status 000001aa
1: @d94c7210 length 800001ec status 000001ec
2: @d94c7220 length 800001aa status 000001aa
3: @d94c7230 length 80000172 status 00000172
4: @d94c7240 length 80000174 status 00000174
5: @d94c7250 length 800001aa status 000001aa
6: @d94c7260 length 80000048 status 00000048
7: @d94c7270 length 80000048 status 00000048
8: @d94c7280 length 80000042 status 00000042
9: @d94c7290 length 80000042 status 00000042
10: @d94c72a0 length 80000042 status 00000042
11: @d94c72b0 length 80000042 status 00000042
12: @d94c72c0 length 80000048 status 00000048
13: @d94c72d0 length 80000048 status 00000048
14: @d94c72e0 length 80000042 status 80000042
15: @d94c72f0 length 80000047 status 80000047
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 896 current 896.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000048 status 00000048
1: @d94c7210 length 80000048 status 00000048
2: @d94c7220 length 80000042 status 00000042
3: @d94c7230 length 80000042 status 00000042
4: @d94c7240 length 80000042 status 00000042
5: @d94c7250 length 80000048 status 00000048
6: @d94c7260 length 80000048 status 00000048
7: @d94c7270 length 80000172 status 00000172
8: @d94c7280 length 80000174 status 00000174
9: @d94c7290 length 80000174 status 00000174
10: @d94c72a0 length 800001aa status 000001aa
11: @d94c72b0 length 80000174 status 00000174
12: @d94c72c0 length 80000174 status 00000174
13: @d94c72d0 length 80000172 status 00000172
14: @d94c72e0 length 80000047 status 80000047
15: @d94c72f0 length 80000042 status 80000042
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 912 current 912.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000042 status 00000042
1: @d94c7210 length 80000042 status 00000042
2: @d94c7220 length 80000047 status 00000047
3: @d94c7230 length 80000048 status 00000048
4: @d94c7240 length 80000047 status 00000047
5: @d94c7250 length 80000048 status 00000048
6: @d94c7260 length 80000047 status 00000047
7: @d94c7270 length 80000048 status 00000048
8: @d94c7280 length 80000042 status 00000042
9: @d94c7290 length 80000042 status 00000042
10: @d94c72a0 length 80000042 status 00000042
11: @d94c72b0 length 80000047 status 00000047
12: @d94c72c0 length 80000048 status 00000048
13: @d94c72d0 length 80000048 status 00000048
14: @d94c72e0 length 80000047 status 80000047
15: @d94c72f0 length 80000174 status 80000174
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 928 current 928.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 800001aa status 000001aa
1: @d94c7210 length 80000174 status 00000174
2: @d94c7220 length 800001aa status 000001aa
3: @d94c7230 length 80000174 status 00000174
4: @d94c7240 length 800000a5 status 000000a5
5: @d94c7250 length 80000174 status 00000174
6: @d94c7260 length 80000174 status 00000174
7: @d94c7270 length 800001aa status 000001aa
8: @d94c7280 length 800001aa status 000001aa
9: @d94c7290 length 80000174 status 00000174
10: @d94c72a0 length 80000048 status 00000048
11: @d94c72b0 length 80000048 status 00000048
12: @d94c72c0 length 80000042 status 00000042
13: @d94c72d0 length 80000042 status 00000042
14: @d94c72e0 length 80000042 status 80000042
15: @d94c72f0 length 80000048 status 80000048
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 944 current 944.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000048 status 00000048
1: @d94c7210 length 80000047 status 00000047
2: @d94c7220 length 80000042 status 00000042
3: @d94c7230 length 80000042 status 00000042
4: @d94c7240 length 80000042 status 00000042
5: @d94c7250 length 80000174 status 00000174
6: @d94c7260 length 800000a5 status 000000a5
7: @d94c7270 length 80000174 status 00000174
8: @d94c7280 length 80000174 status 00000174
9: @d94c7290 length 80000174 status 00000174
10: @d94c72a0 length 800001aa status 000001aa
11: @d94c72b0 length 800000a5 status 000000a5
12: @d94c72c0 length 80000042 status 00000042
13: @d94c72d0 length 80000042 status 00000042
14: @d94c72e0 length 80000042 status 80000042
15: @d94c72f0 length 80000047 status 80000047
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 960 current 960.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 8000002a status 0000002a
1: @d94c7210 length 80000048 status 00000048
2: @d94c7220 length 80000042 status 00000042
3: @d94c7230 length 80000042 status 00000042
4: @d94c7240 length 80000042 status 00000042
5: @d94c7250 length 8000002a status 0000002a
6: @d94c7260 length 8000002a status 0000002a
7: @d94c7270 length 8000002a status 0000002a
8: @d94c7280 length 8000002a status 0000002a
9: @d94c7290 length 8000002a status 0000002a
10: @d94c72a0 length 8000002a status 0000002a
11: @d94c72b0 length 8000002a status 0000002a
12: @d94c72c0 length 8000002a status 0000002a
13: @d94c72d0 length 8000002a status 0000002a
14: @d94c72e0 length 8000002a status 8000002a
15: @d94c72f0 length 8000002a status 8000002a
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 976 current 976.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 8000002a status 0000002a
1: @d94c7210 length 8000002a status 0000002a
2: @d94c7220 length 8000002a status 0000002a
3: @d94c7230 length 8000002a status 0000002a
4: @d94c7240 length 8000002a status 0000002a
5: @d94c7250 length 8000002a status 0000002a
6: @d94c7260 length 8000002a status 0000002a
7: @d94c7270 length 8000002a status 0000002a
8: @d94c7280 length 8000002a status 0000002a
9: @d94c7290 length 8000002a status 0000002a
10: @d94c72a0 length 8000002a status 0000002a
11: @d94c72b0 length 8000002a status 0000002a
12: @d94c72c0 length 8000002a status 0000002a
13: @d94c72d0 length 8000002a status 0000002a
14: @d94c72e0 length 8000002a status 8000002a
15: @d94c72f0 length 8000002a status 8000002a
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 992 current 992.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000042 status 00000042
1: @d94c7210 length 8000002a status 0000002a
2: @d94c7220 length 8000002a status 0000002a
3: @d94c7230 length 8000002a status 0000002a
4: @d94c7240 length 8000002a status 0000002a
5: @d94c7250 length 8000002a status 0000002a
6: @d94c7260 length 8000002a status 0000002a
7: @d94c7270 length 8000002a status 0000002a
8: @d94c7280 length 8000002a status 0000002a
9: @d94c7290 length 8000002a status 0000002a
10: @d94c72a0 length 8000002a status 0000002a
11: @d94c72b0 length 8000002a status 0000002a
12: @d94c72c0 length 8000002a status 0000002a
13: @d94c72d0 length 8000002a status 0000002a
14: @d94c72e0 length 8000002a status 8000002a
15: @d94c72f0 length 8000002a status 8000002a
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 1008 current 1008.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 8000002a status 0000002a
1: @d94c7210 length 8000002a status 0000002a
2: @d94c7220 length 8000002a status 0000002a
3: @d94c7230 length 8000002a status 0000002a
4: @d94c7240 length 8000002a status 0000002a
5: @d94c7250 length 8000002a status 0000002a
6: @d94c7260 length 8000002a status 0000002a
7: @d94c7270 length 8000002a status 0000002a
8: @d94c7280 length 8000002a status 0000002a
9: @d94c7290 length 8000002a status 0000002a
10: @d94c72a0 length 8000002a status 0000002a
11: @d94c72b0 length 8000002a status 0000002a
12: @d94c72c0 length 8000002a status 0000002a
13: @d94c72d0 length 80000048 status 00000048
14: @d94c72e0 length 8000004c status 8000004c
15: @d94c72f0 length 80000042 status 80000042
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 1024 current 1024.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000175 status 00000175
1: @d94c7210 length 800001ec status 000001ec
2: @d94c7220 length 800001ec status 000001ec
3: @d94c7230 length 800001ec status 000001ec
4: @d94c7240 length 800000db status 000000db
5: @d94c7250 length 800000db status 000000db
6: @d94c7260 length 8000004c status 0000004c
7: @d94c7270 length 80000042 status 00000042
8: @d94c7280 length 80000048 status 00000048
9: @d94c7290 length 80000042 status 00000042
10: @d94c72a0 length 80000048 status 00000048
11: @d94c72b0 length 80000057 status 00000057
12: @d94c72c0 length 80000057 status 00000057
13: @d94c72d0 length 80000057 status 00000057
14: @d94c72e0 length 80000057 status 80000057
15: @d94c72f0 length 80000057 status 80000057
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 1040 current 1040.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000057 status 00000057
1: @d94c7210 length 80000175 status 00000175
2: @d94c7220 length 80000172 status 00000172
3: @d94c7230 length 800001ec status 000001ec
4: @d94c7240 length 80000172 status 00000172
5: @d94c7250 length 800001ec status 000001ec
6: @d94c7260 length 80000175 status 00000175
7: @d94c7270 length 800001ec status 000001ec
8: @d94c7280 length 80000175 status 00000175
9: @d94c7290 length 800000a5 status 000000a5
10: @d94c72a0 length 800000a5 status 000000a5
11: @d94c72b0 length 800000a5 status 000000a5
12: @d94c72c0 length 800000a5 status 000000a5
13: @d94c72d0 length 800000a5 status 000000a5
14: @d94c72e0 length 80000042 status 80000042
15: @d94c72f0 length 80000042 status 80000042
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 1056 current 1056.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000042 status 00000042
1: @d94c7210 length 80000042 status 00000042
2: @d94c7220 length 800000a5 status 000000a5
3: @d94c7230 length 80000100 status 00000100
4: @d94c7240 length 800000fa status 000000fa
5: @d94c7250 length 80000042 status 00000042
6: @d94c7260 length 80000042 status 00000042
7: @d94c7270 length 80000042 status 00000042
8: @d94c7280 length 80000042 status 00000042
9: @d94c7290 length 80000042 status 00000042
10: @d94c72a0 length 80000042 status 00000042
11: @d94c72b0 length 80000042 status 00000042
12: @d94c72c0 length 80000042 status 00000042
13: @d94c72d0 length 80000042 status 00000042
14: @d94c72e0 length 80000042 status 80000042
15: @d94c72f0 length 80000042 status 80000042
eth0: Resetting the Tx ring pointer.
eth0: transmit timed out, tx_status 00 status e601.
eth0: Interrupt posted but not delivered -- IRQ blocked by another device?
Flags; bus-master 1, full 0; dirty 1072 current 1072.
Transmit list 00000000 vs. d94c7200.
0: @d94c7200 length 80000042 status 00000042
1: @d94c7210 length 80000042 status 00000042
2: @d94c7220 length 800001ec status 000001ec
3: @d94c7230 length 800001ec status 000001ec
4: @d94c7240 length 800001ec status 000001ec
5: @d94c7250 length 800001ec status 000001ec
6: @d94c7260 length 800001ec status 000001ec
7: @d94c7270 length 800001ec status 000001ec
8: @d94c7280 length 80000047 status 00000047
9: @d94c7290 length 80000047 status 00000047
10: @d94c72a0 length 80000047 status 00000047
11: @d94c72b0 length 80000047 status 00000047
12: @d94c72c0 length 80000042 status 00000042
13: @d94c72d0 length 80000047 status 00000047
14: @d94c72e0 length 80000047 status 80000047
15: @d94c72f0 length 80000042 status 80000042
eth0: Resetting the Tx ring pointer.
----------------------------------------------------------------------
No heavy network traffic at the time, nor any other load worth mentioning.
"rmmod 3c59x; insmod 3c59x" didn't help, neither did "mii-diag -rR".
After boot, it appears to work just fine.
/proc/interrupts says (and said before boot):
cat /proc/interrupts
CPU0 CPU1
0: 1863155 1810272 IO-APIC-edge timer
1: 18405 18521 IO-APIC-edge keyboard
2: 0 0 XT-PIC cascade
4: 154 137 IO-APIC-edge serial
12: 20215 20195 IO-APIC-edge PS/2 Mouse
13: 1 0 XT-PIC fpu
14: 9 6 IO-APIC-edge ide0
15: 6 0 IO-APIC-edge ide1
16: 1273009 1274129 IO-APIC-level nvidia
17: 923250 922785 IO-APIC-level es1370
18: 24461 24141 IO-APIC-level ide2, ide3
19: 9430 9311 IO-APIC-level eth0
NMI: 0
ERR: 0
Any ideas?
--
"Olet sietämätön tyyppi
Ja mielipiteesi ovat vääriä
Älä soita tänne enää koskaan!" - Ultra Bra