[vortex] incorrect interrupt assignment?

David S. H. Rosenthal dshr@abitare.org
Wed, 11 Apr 2001 10:54:58 -0700


ruben@nutz.nl wrote:

> Guess: You have 'PNP controlled by:' set to OS, and not BIOS. The way PNP
> assigns interrupts is different from the way other OS'es do this. Another OS
> might think that sound or video-performance is more important on a server :)
> 
Thank you, Ruben,  for this suggestion.

We have now tried both machines on which we observe the problem with
their "PnP O/S" settings both ways,  and it doesn't make any difference.

> Do the cards work? The two multiboot machines I have both do the same, and I
> have yet to find any ill effects.
> 
In both cases the cards work running under Windows.

I have now had a chance to spend some time with one of the two machines that
is having problems.  Below is everything I could think of that might be useful,
given the limited facilities available when running the Linux Router Project
environment.

I'm no longer so sure that the interrupt assignment is the problem.  Although
on this machine the card gets interrupt 3 where under Windows it gets 11,
and although it is sharing interrupt 3 with something else, the output from
/proc/interrupts shows the kernel getting interrupts from eth0 on IRQ3.  The
number of interrupts I think matched the number of Tx packets shown by
ifconfig eth0 at that stage.  Although the number of Tx packets shown went
up over time the number of Rx packets stayed zero.  The driver seems to
detect an overrun soon after initialization but nothing else.

I should stress that this exact LRP boot floppy has run correctly on many
other machines with eepro100 and tulip interfaces including some on the same
subnet as when I collected the following data,  and on older motherboards
with 3c905 cards.

The next chance I get I will try the patches described in
http://www.scyld.com/pipermail/vortex/2000-December/000858.html

	David.

PnP O/S BIOS option set to "No"

dmesg output:

Wed Apr 11 03:38:17 CDT 2001
Linux version 2.2.18 (root@sul-lockss1.stanford.edu) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #21 Mon Feb 26 17:16:00 PST 2001
Detected 930331 kHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 1854.66 BogoMIPS
Memory: 127172k/130816k available (836k kernel code, 416k reserved, 1564k data, 44k init)
Dentry hash table entries: 16384 (order 5, 128k)
Buffer cache hash table entries: 131072 (order 7, 512k)
Page cache hash table entries: 32768 (order 5, 128k)
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
256K L2 cache (8 way)
CPU: L2 Cache: 256K
CPU: Intel Pentium III (Coppermine) stepping 06
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xfda95
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
TCP: Hash tables configured (ehash 131072 bhash 65536)
Starting kswapd v 1.5 
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
Software Watchdog Timer: 0.05, timer margin: 60 sec
Real Time Clock Driver v1.09
RAM disk driver initialized:  16 RAM disks of 12288K size
loop: registered device at major 7
PCI_IDE: unknown IDE controller on PCI bus 00 device f9, VID=8086, DID=244b
PCI_IDE: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio
hda: Maxtor 52049H3, ATA DISK drive
hdc: Lite-On LTN483S 48x Max, ATAPI CDROM drive
hdd: IOMEGA ZIP 100 ATAPI, ATAPI FLOPPY drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: Maxtor 52049H3, 19473MB w/2048kB Cache, CHS=2482/255/63
hdc: ATAPI 48X CD-ROM drive, 120kB Cache
Uniform CD-ROM driver Revision: 3.11
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
Partition check:
 hda: hda1 hda2 < hda5 hda6 >
RAMDISK: Compressed image found at block 0
RAMDISK: Uncompressing root archive: done.
RAMDISK: Auto Filesystem - minix: 4096i 12288bk 133fdz(133) 1024zs 2147483647ms
VFS: Mounted root (minix filesystem).
RAMDISK: Extracting root archive: done.
VFS: Disk change detected on device fd(2,44)
Freeing unused kernel memory: 44k freed
3c59x.c 15Sep00 Donald Becker and others http://www.scyld.com/network/vortex.html
eth0: 3Com 3c905C Tornado at 0xdc00,  00:01:03:c2:8a:4d, IRQ 3
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  MII transceiver found at address 1, status   24.
  MII transceiver found at address 2, status   24.
  Enabling bus-master transmits and whole-frame receives.
eepro100.c:v1.09j-t 9/29/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html
eepro100.c: $Revision: 1.20.2.10 $ 2000/05/31 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others
eepro100.c: VA Linux custom, Dragan Stancevic <visitor@valinux.com> 2000/11/15
eepro100: No cards found, driver not installed.
epic100.c:v1.07h 8/18/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/epic100.html
ne2k-pci.c:vpre-1.00e 5/27/99 D. Becker/P. Gortmaker http://cesdis.gsfc.nasa.gov/linux/drivers/ne2k-pci.html
ne2k-pci.c: No useable cards found, driver NOT installed.

lsmod output:

Module                  Size  Used by
8390                    5732   0
3c59x                  18324   1

ifconfig eth0 output:

eth0      Link encap:Ethernet  HWaddr 00:01:03:C2:8A:4D  
          inet addr:171.66.233.10  Bcast:171.66.233.255  Mask:255.255.254.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:1 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          Interrupt:3 Base address:0xdc00 

cat /proc/pci output:

PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Intel Unknown device (rev 2).
      Vendor id=8086. Device id=1130.
      Fast devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  
      Prefetchable 32 bit memory at 0xf8000000 [0xf8000008].
  Bus  0, device   1, function  0:
    PCI bridge: Intel Unknown device (rev 2).
      Vendor id=8086. Device id=1131.
      Fast devsel.  Master Capable.  Latency=64.  Min Gnt=8.
  Bus  0, device  30, function  0:
    PCI bridge: Intel Unknown device (rev 2).
      Vendor id=8086. Device id=244e.
      Fast devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  Min Gnt=2.
  Bus  0, device  31, function  0:
    ISA bridge: Intel Unknown device (rev 2).
      Vendor id=8086. Device id=2440.
      Medium devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  
  Bus  0, device  31, function  1:
    IDE interface: Intel Unknown device (rev 2).
      Vendor id=8086. Device id=244b.
      Medium devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  
      I/O at 0xffa0 [0xffa1].
  Bus  0, device  31, function  2:
    USB Controller: Intel Unknown device (rev 2).
      Vendor id=8086. Device id=2442.
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  No bursts.  
      I/O at 0xef80 [0xef81].
  Bus  0, device  31, function  3:
    SM Bus: Intel Unknown device (rev 2).
      Vendor id=8086. Device id=2443.
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  
      I/O at 0xefa0 [0xefa1].
  Bus  1, device   0, function  0:
    VGA compatible controller: ATI Unknown device (rev 0).
      Vendor id=1002. Device id=5046.
      Medium devsel.  Fast back-to-back capable.  IRQ 11.  Master Capable.  Latency=64.  Min Gnt=8.
      Prefetchable 32 bit memory at 0xf0000000 [0xf0000008].
      I/O at 0xc800 [0xc801].
      Non-prefetchable 32 bit memory at 0xff8fc000 [0xff8fc000].
  Bus  2, device   9, function  0:
    Ethernet controller: 3Com Unknown device (rev 120).
      Vendor id=10b7. Device id=9200.
      Medium devsel.  IRQ 3.  Master Capable.  Latency=64.  Min Gnt=10.Max Lat=10.
      I/O at 0xdc00 [0xdc01].
      Non-prefetchable 32 bit memory at 0xff9ffc00 [0xff9ffc00].
  Bus  2, device  12, function  0:
    Multimedia audio controller: Ensoniq ES1371 (rev 9).
      Slow devsel.  IRQ 9.  Master Capable.  Latency=64.  Min Gnt=12.Max Lat=128.
      I/O at 0xdf00 [0xdf01].
  Bus  2, device  13, function  0:
    Communication controller: Unknown vendor Unknown device (rev 8).
      Vendor id=14f1. Device id=1036.
      Medium devsel.  Fast back-to-back capable.  IRQ 3.  Master Capable.  Latency=64.  
      Non-prefetchable 32 bit memory at 0xff9e0000 [0xff9e0000].
      I/O at 0xdff0 [0xdff1].

cat /proc/interrupts output:

           CPU0       
  0:     121489          XT-PIC  timer
  1:       2327          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  3:         75          XT-PIC  eth0
  6:         87          XT-PIC  floppy
  8:          1          XT-PIC  rtc
 13:          1          XT-PIC  fpu
 14:         11          XT-PIC  ide0
 15:         12          XT-PIC  ide1
NMI:          0

cat /proc/ioports output:

0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
0376-0376 : ide1
03c0-03df : vga+
03f0-03f5 : floppy
03f6-03f6 : ide0
03f7-03f7 : floppy DIR
03f8-03ff : serial(set)
dc00-dc7f : eth0
ffa0-ffa7 : ide0
ffa8-ffaf : ide1

cat /proc/net/arp output:

IP address       HW type     Flags       HW address            Mask     Device

cat /proc/net/dev output:

Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:    2748      27    0    0    0     0          0         0     2748      27    0    0    0     0       0          0
  eth0:       0       0    0    0    1     0          0         0     3150      76    0    0    0     0       0          0

cat /proc/net/dev_mcast output:

2    eth0            1     0     01005e000001

cat /proc/net/dev_stat output:

00000000 00000000 00000000 00000000 00000000

cat /proc/net/igmp output:

Idx     Device    : Count Querier       Group    Users Timer    Reporter
1       lo        :     0      V2
                                010000E0     1 0:FFFD9045               0
2       eth0      :     1      V2
                                010000E0     1 0:FFFD904D               0

cat /proc/net/ip_fwchains output:

cat /proc/net/ip_fwnames output:

input ACCEPT 1 0 27 0 2748
forward ACCEPT 1 0 0 0 0
output ACCEPT 1 0 54 0 4740

cat /proc/net/netstat output:

TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned OutOfWindowIcmps LockDroppedIcmps SockMallocOOM
TcpExt: 0 0 0 0 0 0 0 0 0 0
IpExt: ArpFilter
IpExt: 0

cat /proc/net/raw output:

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode                               
   0: 00000000:0001 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 0                                   
   1: 00000000:0006 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 0                                   

cat /proc/net/route output:

Iface   Destination     Gateway         Flags   RefCnt  Use     Metric  Mask            MTU     Window  IRTT                                                       
eth0    0AE942AB        00000000        0005    0       0       0       FFFFFFFF        0       0       0                                                                               
lo      0100007F        00000000        0005    0       0       0       FFFFFFFF        0       0       0                                                                                 
eth0    00E842AB        00000000        0001    0       0       0       00FEFFFF        0       0       0                                                                               
eth0    00000000        01E842AB        0003    0       0       0       00000000        0       0       0                                                                               

cat /proc/net/rt_cache output:

Iface   Destination     Gateway         Flags           RefCnt  Use     Metric  Source          MTU     Window  IRTT    TOS     HHRef   HHUptod SpecDst                          

cat /proc/net/snmp output:

Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates
Ip: 2 64 27 0 0 0 0 0 0 54 0 0 0 0 0 0 0 0 0
Icmp: InMsgs InErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs
OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps
Icmp: 27 0 27 0 0 0 0 0 0 0 0 0 0 27 0 27 0 0 0 0 0 0 0 0 0 0
Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts
Tcp: 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Udp: InDatagrams NoPorts InErrors OutDatagrams
Udp: 0 0 0 24

cat /proc/net/sockstat output:

sockets: used 5
TCP: inuse 0 highest 0
UDP: inuse 0 highest 1
RAW: inuse 2 highest 3

cat /proc/net/tcp output:

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode                               

cat /proc/net/udp output:

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode                               

cat /proc/net/unix output:

Num       RefCount Protocol Flags    Type St Inode Path
c7ee67a0: 00000000 00000000 00010000 0001 01  1162 /dev/log
c7ee6fb0: 00000001 00000000 00000000 0001 03  1184 @00000002
c7ee6a50: 00000001 00000000 00000000 0001 03  1168 @00000001
c7ee7260: 00000001 00000000 00000000 0001 03  1185 /dev/log
c7ee6d00: 00000001 00000000 00000000 0001 03  1169 /dev/log