Re: SIO Interrupt storms and unhandled interrupts

From: Mike Tancsa <mike_at_sentex.net>
Date: Thu, 09 Sep 2004 16:07:29 -0400
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
_at__at_ -76,7 +76,9 _at__at_
         { 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
_at__at_ -818,6 +818,17 _at__at_
             },
         },

+/* 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
_at__at_ -803,16 +803,6 _at__at_
                 { 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
_at__at_ -602,7 +602,8 _at__at_
         { 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>
_at__at_ -330,18 +330,13 _at__at_
  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
_at__at_ -431,7 +426,7 _at__at_
  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
Received on Thu Sep 09 2004 - 18:02:39 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:11 UTC