SIO Interrupt storms and unhandled interrupts
Mike Tancsa
mike at sentex.net
Thu Sep 9 13:02:39 PDT 2004
At 01:22 PM 09/09/2004, John Baldwin wrote:
> >
> > My question is this-- Is the root cause the same issue on RELENG_4 and
> > RELENG_5 ? Are we going about it the best way to fix the problem ? Or is
> > the underlying problem something else ?
> >
> > Attached is a dmesg and acpidump
>
>You can do a similar hack to puc/sio in 5.x, but you also need to remove the
>'INTR_FAST' flag to bus_setup_intr() for it to work.
Hi,
Thanks for the response! We found a different solution / approach
which seems to work on both RELENG_4 and RELENG_5. The problem is that the
modem is not being seen as a PCI / PUC device and instead is being seen as
an ISA SIO device ?? The following RELENG_5 and RELENG_4 patches seem to
fix the problem. I wonder if the other modems listed in sio.c suffer the
same fate ?
Also fixed in this are those "cant re-use leafs" at bootup time. The modem
is seen as a PUC device now.... At the bottom is a diff between the boot -v
(Patches are done by keith at sentex.ca)
--- orig/sio_pci.c Thu Sep 9 15:44:19 2004
+++ sio_pci.c Thu Sep 9 14:51:16 2004
@@ -76,7 +76,9 @@
{ 0x048011c1, "Lucent kermit based PCI Modem", 0x14 },
{ 0x95211415, "Oxford Semiconductor PCI Dual Port Serial", 0x10 },
{ 0x7101135e, "SeaLevel Ultra 530.PCI Single Port Serial", 0x18 },
- { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 },
+/* Removed 2004/09/09 - KDW
+ { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 },
+*/
{ 0x0103115d, "Xircom Cardbus modem", 0x10 },
{ 0x98459710, "Netmos Nm9845 PCI Bridge with Dual UART", 0x10 },
{ 0x432214e4, "Broadcom 802.11g/GPRS CardBus (Serial)", 0x10 },
releng-5-pioneer# diff -u orig/pucdata.c pucdata.c
--- orig/pucdata.c Thu Sep 9 15:45:33 2004
+++ pucdata.c Thu Sep 9 15:00:43 2004
@@ -818,6 +818,17 @@
},
},
+/* ADDED 2004/09/09 - KDW - { 0x0000151f, "SmartLink 5634PCV SurfRider",
0x10 }, */
+ /* "SmartLink 5634PCV SurfRider */
+ { "SmartLink 5634PCV SurfRider",
+ { 0x151f, 0x0000, 0, 0 },
+ { 0xffff, 0xffff, 0, 0 },
+ {
+ { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
+ },
+ },
+/* END KDW */
+
/* US Robotics (3Com) PCI Modems */
{ "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
{ 0x12b9, 0x1008, 0, 0 },
releng-5-pioneer#
vmstat now sees that the PUC device shares the interrupt and all seems well!
releng-5-pioneer# vmstat -i
interrupt total rate
irq0: clk 205278 99
irq1: atkbd0 2 0
irq4: sio0 188 0
irq6: fdc0 1 0
irq7: uhci2 1 0
irq8: rtc 262759 127
irq12: uhci1 puc0 1194 0
irq13: npx0 1 0
irq14: ata0 1724 0
irq15: vr0 ata1 4274 2
Total 475422 231
releng-5-pioneer#
and on RELENG_4
# diff -u pucdata.c orig/pucdata.c
--- /usr/src/sys/dev/puc/pucdata.c Thu Sep 9 14:18:56 2004
+++ /usr/src/sys/dev/puc/orig/pucdata.c Thu Sep 9 15:50:14 2004
@@ -803,16 +803,6 @@
{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
},
},
-
-/* { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 }, */
- /* KDW/GE SurfRider */
- { "SmartLink 5634PCV SurfRider",
- { 0x151f, 0x0000, 0, 0 },
- { 0xffff, 0xffff, 0, 0 },
- {
- { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
- },
- },
/* Actiontec 56K PCI Master */
{ "Actiontec 56K PCI Master",
--- /usr/src/sys/isa/orig/sio.c Thu Sep 9 15:51:47 2004
+++ /usr/src/sys/isa/sio.c Thu Sep 9 14:19:27 2004
@@ -602,7 +602,8 @@
{ 0x048011c1, "Lucent kermit based PCI Modem", 0x14 },
{ 0x95211415, "Oxford Semiconductor PCI Dual Port Serial", 0x10 },
{ 0x7101135e, "SeaLevel Ultra 530.PCI Single Port Serial", 0x18 },
- { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 },
+/* next line removed 2004/09/08 by KDW */
+/* { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 }, */
{ 0x98459710, "Netmos Nm9845 PCI Bridge with Dual UART", 0x10 },
{ 0x00000000, NULL, 0 }
};
And the boot -v diffs.
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
-FreeBSD 5.3-BETA3 #1: Wed Sep 8 18:54:01 EDT 2004
- mdtancsa at releng-5-pioneer.sentex.ca:/usr/obj/usr/src/sys/pioneer
+FreeBSD 5.3-BETA3 #2: Thu Sep 9 15:09:52 EDT 2004
+ keith at releng-5-pioneer.sentex.ca:/usr/obj/usr/src/sys/pioneer
Preloaded elf kernel "/boot/kernel/kernel" at 0xc082c000.
Preloaded elf module "/boot/modules/acpi.ko" at 0xc082c1d8.
-Calibrating clock(s) ... i8254 clock: 1193179 Hz
+Calibrating clock(s) ... i8254 clock: 1193185 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 1193182 Hz quality 0
-Calibrating TSC clock ... TSC clock: 1002280114 Hz
+Calibrating TSC clock ... TSC clock: 1002279822 Hz
CPU: VIA C3 Nehemiah (1002.28-MHz 686-class CPU)
Origin = "CentaurHauls" Id = 0x691 Stepping = 1
Features=0x380b035<FPU,DE,TSC,MSR,MTRR,PGE,CMOV,MMX,FXSR,SSE>
@@ -330,18 +330,13 @@
vr1: bpf attached
vr1: Ethernet address: 00:40:63:c9:fa:98
vr1: [MPSAFE]
-sio0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xe800
-sio0: irq maps: 0x1 0x1001 0x1 0x1
-sio0: <SmartLink 5634PCV SurfRider> port 0xe800-0xe807 irq 12 at device
20.0 on pci0
-sio0: moving to sio4
+puc0: <SmartLink 5634PCV SurfRider> port 0xe800-0xe807 irq 12 at device
20.0 on pci0
+puc0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xe800
+sio4: <SmartLink 5634PCV SurfRider> on puc0
sio4: type 16550A
+sio4: unable to activate interrupt in fast mode - using normal mode
fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0
sio0: irq maps: 0x1 0x11 0x1 0x1
-can't re-use a leaf (%desc)!
-can't re-use a leaf (%driver)!
-can't re-use a leaf (%location)!
-can't re-use a leaf (%pnpinfo)!
-can't re-use a leaf (%parent)!
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A, console
sio1: irq maps: 0x1 0x9 0x1 0x1
@@ -431,7 +426,7 @@
isa_probe_children: probing PnP devices
Device configuration finished.
procfs registered
-Timecounter "TSC" frequency 1002280114 Hz quality 800
+Timecounter "TSC" frequency 1002279822 Hz quality 800
Timecounters tick every 10.000 msec
ipfw2 initialized, divert disabled, rule-based forwarding disabled,
default to accept, logging limited to 2100 packets/entry by default
lo0: bpf attached
---Mike
More information about the freebsd-current
mailing list