Subject: too many interrupts
To: None <>
From: C Kane <>
List: current-users
Date: 07/06/2000 22:23:40

In recent kernels, I have a problem with a Cyclades-Y multi-port
serial card on my NetBSD/i386.  These cards support external modules
which can connect as many as 32 serial ports to one PCI card.

The problem does not happen in 1.3I.  I don't know at which version the
problem started, but the problem exists in 1.4X through 1.5_ALPHA.

If one of the Cyclades-Y serial ports receives a character while
that device is not opened (like by 'tip'), then NetBSD begins
processing around 24,000 interrupts per second.  Sometimes this
will not happen until a program opens the device, and then the program
ends, and then a character arrives on the serial port.

Once the interrupts start happening, opening the port (like with 'tip')
will put things back to normal.

Here's a brief bit of a kernel backtrace I got once while the interrupts
were happening:
  Xintr1() at Xintr+0x70
  Xdoreti() at Xdoreti+0xe
  Xdoreti() at Xdoreti+0x3
     [ 17 more --interrupt-- frames like these ]
  Xspllower(c08c4400,f04,89,c08c0089,c08c4400) at Xspllower+0xe
  dp8390_read(c08c4400,f04,89,c04c4400,c0101f70) at dp8930_read+0x1d
  dp8390_rint(c08c4400) at dp8390+rint+0x1ea
  we_recv_int(c08c4400,c08b9d10,c0101f70,7fffffff,33) at we_recv_int+0x7a
  dp8390_intr(c08c4400) at dp8390+intr+0x43c
  Xintr7() at Xintr7+0x70
  Xspllower(c036cb64,1,c0231e28,0,7fffffff) at Xspllower+0xe
  nfs_timer(0) at nfs_timer+0x33e
  softclock(d2a00010,10,d29fa5f0,d29fa5f0,d2a0bf30) at softclock+0x121
  Bad frame pointer: 0xd2a0bebc

I do not believe there is an 8390 device in the system.  It has an SMC
combo 16 card:
  we0 at isa0 port 0x280-0x29f iomem 0xcc000-0xcffff irq 7
  we0: SMC8216/SMC8216C Ethernet (16-bit)
  we0: Ethernet address 00:00:c0:4c:cb:01

Has anybody else seen this?

Does anyone have any suggestions to debug it?

Thanks so much...

-- Chuck