PROBLEM: serial.c looses its interruptsource

Wolfgang Jung (woju@keep.in-berlin.de)
Wed, 19 May 1999 12:00:08 +0200


Problem:
Serial.c is loosing its interruptsource

Description:
Running an AST 4 Port Card IO:(0x1a0-0x1bf) IRQ:11 with
serial.c 4.27 (with kernel 2.2.9). Running some
PPP Traffic (28.8kbps loaded to 3kByte/s with 115200bps) it will get
stuck after some minutes. Checking /proc/interupts
there the counter for irq 11 is not counting anymore
while the two sides still send some data which should
endup generating interupts. doing an ls >/dev/ttyS{oneotherportonast}
will lead in reactivated interupts and the ppp tarffic continues
if not hold to long.
Doing the same on on an standard COM (/dev/ttyS[0,1],irq 4,3)
everything runs without a hitch.

The last running kernel on that Systemhas been an 2.0.35 which
ran without a hitch.

there is no change in running serial.c as a module or kernel-compiled

Adding an early message for the status register of the AST
(added an printk into the rs_interrupt_single at the top
behind the SERIAL_DEBUG_INTR 'ed block.) is able to trigger
the problem even quicker (almost emediatly)

Keywords:
interrupt, lost, serial, AST 4 Port, module, kernel, ppp,
networtking

Version:
Linux version 2.2.9 (root@drawbridge.in-berlin.de)\
(gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #3\
Mon May 17 20:59:57 CEST 1999

System: (RH 6.0 with self compiled kernel)
Running an Old Pentium 90 on an triton I Board (ASUS)

/proc/pci:
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Intel 82437 (rev 1).
Medium devsel. Master Capable. Latency=32.
Bus 0, device 7, function 0:
ISA bridge: Intel 82371FB PIIX ISA (rev 2).
Medium devsel. Fast back-to-back capable. Master Capable. No bursts.
Bus 0, device 7, function 1:
IDE interface: Intel 82371FB PIIX IDE (rev 2).
Medium devsel. Fast back-to-back capable. Master Capable. Latency=32.
I/O at 0xe800 [0xe801].
Bus 0, device 10, function 0:
Non-VGA device: NCR 53c810 (rev 1).
Medium devsel. IRQ 15. Master Capable. Latency=64.
I/O at 0xe400 [0xe401].
Non-prefetchable 32 bit memory at 0xfbfdf000 [0xfbfdf000].
Bus 0, device 11, function 0:
Ethernet controller: Realtek 8029 (rev 0).
Medium devsel. IRQ 14.
I/O at 0xe000 [0xe001].
Bus 0, device 12, function 0:
VGA compatible controller: S3 Inc. Trio32/Trio64 (rev 0).
Medium devsel.
Non-prefetchable 32 bit memory at 0xfb000000 [0xfb000000].

CPUINFO:
processor : 0
vendor_id : GenuineIntel
cpu family : 5
model : 2
model name : Pentium 75 - 200
stepping : 5
cpu MHz : 89.815065
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : yes
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr mce cx8
bogomips : 35.84

SCSI:
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: QUANTUM Model: LIGHTNING 540S Rev: 241E
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: QUANTUM Model: FIREBALL_TM2110S Rev: 300N
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: IBM Model: DSAS-3540 Rev: S47W
Type: Direct-Access ANSI SCSI revision: 02

NCR53c810 driver compiled into the kernel

Options to serial.c:
CONFIG_SERIAL_MANY_PORTS
CONFIG_SERIAL_SHARE_IRQ
CONFIG_SERIAL_DETECT_IRQ
CONFIG_SERIAL_MULTIPORT
Output of scripts/ver_linux:
-- Versions installed: (if some fields are empty or looks
-- unusual then possibly you have very old versions)
Linux drawbridge.in-berlin.de 2.2.9 #3 Mon May 17 20:59:57 CEST 1999 i586 unknown
Kernel modules 2.1.121
Gnu C egcs-2.91.66
Binutils 2.9.1.0.23
Linux C Library 2.1.1
Dynamic linker ldd (GNU libc) 2.1.1
Procps 2.0.2
Mount 2.9o
Net-tools 1.51
Kbd [option...]
Sh-utils 1.16
Modules Loaded ppp slhc parport_pc lp parport ne2k-pci 8390 serial

Setserial:
#!/bin/sh
/bin/setserial -v /dev/ttyS0 port 0x3f8 irq 4 autoconfig
/bin/setserial -v /dev/ttyS1 port 0x2f8 irq 3 autoconfig
/bin/setserial -v /dev/ttyS2 port 0x3e8 irq 5 autoconfig
/bin/setserial -v /dev/ttyS3 port 0x2e8 irq 9 autoconfig
#
/bin/setserial -v /dev/ttyS4 port 0x1a0 irq 11 baud_base 460800 autoconfig fourport
/bin/setserial -v /dev/ttyS5 port 0x1a8 irq 11 baud_base 460800 autoconfig fourport
/bin/setserial -v /dev/ttyS6 port 0x1b8 irq 11 baud_base 460800 autoconfig fourport
/bin/setserial -v /dev/ttyS7 port 0x1b0 irq 11 baud_base 460800 autoconfig fourport

setserial /dev/ttyS4 set_multiport port1 0x1BF match1 0xf mask1 0xf

========

Since running on ttyS0 without any problem I suspect (will check this later
the day) the handling of the High Interupts (9-15) is causing the trouble.
I donot suspect any hardware causes since the old serial.c (4.13)
did run fine here.

Gruss
Wolfgang

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/