[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