misc/74786: Smartlink Modem causes interrupt storm on RELENG_4 and RELENG_5

Mike Tancsa mike at sentex.net
Wed Dec 8 07:34:52 PST 2004


At 02:22 AM 08/12/2004, Bruce Evans wrote:
>Try this fix.  For the uhci-sio conflict, it should avoid problem (1)

Hi,

The dmesg still complains about the "cant reuse leaf" as well as the other 
PUC card now complains as well about "unable to activate interrupt in fast 
mode - using normal mode"

releng5-865% cat /var/run/dmesg.boot
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-STABLE #1: Wed Dec  8 10:05:17 EST 2004
     mdtancsa at releng5-865.sentex.ca:/usr/obj/usr/src/sys/test
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Celeron(R) CPU 2.40GHz (2400.41-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
   Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
real memory  = 267190272 (254 MB)
avail memory = 251912192 (240 MB)
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <AOpen AWRDACPI> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82865G (865G GMCH) SVGA controller> port 0xd000-0xd007 mem 
0xfa000000-0xfa07ffff,0xf0000000-0xf7ffffff at device 2.0 on pci0
agp0: detected 892k stolen memory
agp0: aperture size is 128M
uhci0: <Intel 82801EB (ICH5) USB controller USB-A> port 0xc000-0xc01f irq 
12 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <Intel 82801EB (ICH5) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhid0: APC Back-UPS ES 725 FW:802.n2.D USB FW:n2, rev 1.10/1.06, addr 2, 
iclass 3/0
uhci1: <Intel 82801EB (ICH5) USB controller USB-B> port 0xc400-0xc41f irq 5 
at device 29.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: <Intel 82801EB (ICH5) USB controller USB-B> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <Intel 82801EB (ICH5) USB controller USB-C> port 0xc800-0xc81f irq 
10 at device 29.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: <Intel 82801EB (ICH5) USB controller USB-C> on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhci3: <Intel 82801EB (ICH5) USB controller USB-D> port 0xcc00-0xcc1f irq 
12 at device 29.3 on pci0
uhci3: [GIANT-LOCKED]
usb3: <Intel 82801EB (ICH5) USB controller USB-D> on uhci3
usb3: USB revision 1.0
uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
pcib1: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci1: <ACPI PCI bus> on pcib1
sio0: <SmartLink 5634PCV SurfRider> port 0xa000-0xa007 irq 12 at device 4.0 
on pci1
sio0: moving to sio4
sio4: type 16550A
sio4: unable to activate interrupt in fast mode - using normal mode
rl0: <RealTek 8139 10/100BaseTX> port 0xa400-0xa4ff mem 
0xf9000000-0xf90000ff irq 15 at device 5.0 on pci1
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:50:fc:24:2b:4d
fxp0: <Intel 82801BA (D865) Pro/100 VE Ethernet> port 0xa800-0xa83f mem 
0xf9001000-0xf9001fff irq 11 at device 8.0 on pci1
miibus1: <MII bus> on fxp0
inphy0: <i82562ET 10/100 media interface> on miibus1
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:01:80:54:b7:09
puc0: <Lava Computers Quattro-PCI serial port> port 
0xb000-0xb007,0xac00-0xac07 irq 10 at device 10.0 on pci1
sio5: <Lava Computers Quattro-PCI serial port> on puc0
sio5: type 16550A
sio5: unable to activate interrupt in fast mode - using normal mode
sio6: <Lava Computers Quattro-PCI serial port> on puc0
sio6: type 16550A
sio6: unable to activate interrupt in fast mode - using normal mode
puc1: <Lava Computers Quattro-PCI serial port> port 
0xb800-0xb807,0xb400-0xb407 irq 10 at device 10.1 on pci1
sio7: <Lava Computers Quattro-PCI serial port> on puc1
sio7: type 16550A
sio7: unable to activate interrupt in fast mode - using normal mode
sio8: <Lava Computers Quattro-PCI serial port> on puc1
sio8: type 16550A
sio8: unable to activate interrupt in fast mode - using normal mode
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH5 UDMA100 controller> port 
0xf000-0xf00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
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: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A, console
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
orm0: <ISA Option ROM> at iomem 0xc0000-0xc9fff on isa0
ppc0: parallel port not found.
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 2400411284 Hz quality 800
Timecounters tick every 10.000 msec
Fast IPsec: Initialized Security Association Processing.
ad0: 38166MB <ST340014A/3.06> [77545/16/63] at ata0-master UDMA100
Mounting root from ufs:/dev/ad0s1a
releng5-865%


But it seems to work in that I dont get an interrupt storm when attaching 
to the modem.

releng5-865# vmstat -i
interrupt                          total       rate
irq0: clk                          18220         99
irq4: sio0                           170          0
irq8: rtc                          23322        127
irq10: uhci2 puc0+                     6          0
irq11: fxp0                          892          4
irq12: uhci0 uhci3+                  122          0
irq13: npx0                            1          0
irq14: ata0                         1110          6
Total                              43843        239
releng5-865#


>(please try it with the RF_SHAREABLE flag removed so that if this is
>indeed the primary problem then the new diagnostic will verify it).


releng5-865# cat /var/run/dmesg.boot
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-STABLE #2: Wed Dec  8 10:20:43 EST 2004
     mdtancsa at releng5-865.sentex.ca:/usr/obj/usr/src/sys/test
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Celeron(R) CPU 2.40GHz (2400.41-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
   Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
real memory  = 267190272 (254 MB)
avail memory = 251912192 (240 MB)
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <AOpen AWRDACPI> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82865G (865G GMCH) SVGA controller> port 0xd000-0xd007 mem 
0xfa000000-0xfa07ffff,0xf0000000-0xf7ffffff at device 2.0 on pci0
agp0: detected 892k stolen memory
agp0: aperture size is 128M
uhci0: <Intel 82801EB (ICH5) USB controller USB-A> port 0xc000-0xc01f irq 
12 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <Intel 82801EB (ICH5) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhid0: APC Back-UPS ES 725 FW:802.n2.D USB FW:n2, rev 1.10/1.06, addr 2, 
iclass 3/0
uhci1: <Intel 82801EB (ICH5) USB controller USB-B> port 0xc400-0xc41f irq 5 
at device 29.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: <Intel 82801EB (ICH5) USB controller USB-B> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <Intel 82801EB (ICH5) USB controller USB-C> port 0xc800-0xc81f irq 
10 at device 29.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: <Intel 82801EB (ICH5) USB controller USB-C> on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhci3: <Intel 82801EB (ICH5) USB controller USB-D> port 0xcc00-0xcc1f irq 
12 at device 29.3 on pci0
uhci3: [GIANT-LOCKED]
usb3: <Intel 82801EB (ICH5) USB controller USB-D> on uhci3
usb3: USB revision 1.0
uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
pcib1: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci1: <ACPI PCI bus> on pcib1
sio0: <SmartLink 5634PCV SurfRider> port 0xa000-0xa007 irq 12 at device 4.0 
on pci1
sio0: moving to sio4
sio4: type 16550A
sio4: interrupt resource allocation failed
sio4: falling back to polled mode
sio4: polled mode
rl0: <RealTek 8139 10/100BaseTX> port 0xa400-0xa4ff mem 
0xf9000000-0xf90000ff irq 15 at device 5.0 on pci1
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:50:fc:24:2b:4d
fxp0: <Intel 82801BA (D865) Pro/100 VE Ethernet> port 0xa800-0xa83f mem 
0xf9001000-0xf9001fff irq 11 at device 8.0 on pci1
miibus1: <MII bus> on fxp0
inphy0: <i82562ET 10/100 media interface> on miibus1
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:01:80:54:b7:09
puc0: <Lava Computers Quattro-PCI serial port> port 
0xb000-0xb007,0xac00-0xac07 irq 10 at device 10.0 on pci1
sio5: <Lava Computers Quattro-PCI serial port> on puc0
sio5: type 16550A
sio5: unable to activate interrupt in fast mode - using normal mode
sio6: <Lava Computers Quattro-PCI serial port> on puc0
sio6: type 16550A
sio6: unable to activate interrupt in fast mode - using normal mode
puc1: <Lava Computers Quattro-PCI serial port> port 
0xb800-0xb807,0xb400-0xb407 irq 10 at device 10.1 on pci1
sio7: <Lava Computers Quattro-PCI serial port> on puc1
sio7: type 16550A
sio7: unable to activate interrupt in fast mode - using normal mode
sio8: <Lava Computers Quattro-PCI serial port> on puc1
sio8: type 16550A
sio8: unable to activate interrupt in fast mode - using normal mode
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH5 UDMA100 controller> port 
0xf000-0xf00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
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: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A, console
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
orm0: <ISA Option ROM> at iomem 0xc0000-0xc9fff on isa0
ppc0: parallel port not found.
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 2400411356 Hz quality 800
Timecounters tick every 10.000 msec
Fast IPsec: Initialized Security Association Processing.
ad0: 38166MB <ST340014A/3.06> [77545/16/63] at ata0-master UDMA100
Mounting root from ufs:/dev/ad0s1a
releng5-865#

releng5-865# vmstat -i
interrupt                          total       rate
irq0: clk                          39748         99
irq4: sio0                           170          0
irq8: rtc                          50879        127
irq10: uhci2 puc0+                     6          0
irq11: fxp0                          482          1
irq12: uhci0 uhci3                    86          0
irq13: npx0                            1          0
irq14: ata0                         1115          2
Total                              92487        231
releng5-865#

implies its not sharing the interrupt but it goes into polled mode.

>This should move the conflict later, to one between usb's use of
>normal interrupt mode and sio's request for fast interrupt mode.
>There were already sufficient diagnostics for this.  The patch adds
>some more.  Since usb got the interrupt first, sio will fall back
>to normal mode.  If sio goes first then the attach of usb would
>probably fail.  The patch doesn't change these bevhaviours.  The
>patch adds another fallback to polled mode if setup of normal mode
>mode fails and fixes some related resource leaks.  It also increases
>the polling frequency if possible.  Polled mode mostly works at
>115200 bps provided the UART is buffered and HZ >= 1000.  With
>unbuffered UARTs and HZ = 100, only 4800 bos mostly works.

I am using RELENG_5, so I am not sure if the HZ default has changed 
yet.  Not sure how much of this applies to RELENG_4 either where the 
problem is particularly acute.



>         return (0);
>@@ -2647,5 +2664,5 @@
>         /*
>         * Set our timeout period to 1 second if no polled devices are open.
>-       * Otherwise set it to max(1/200, 1/hz).
>+       * Otherwise, set it to max(1/1000, 1/hz).
>         * Enable timeouts iff some device is open.
>         */
>@@ -2659,5 +2676,5 @@


BTW, The comment part of the patch does not apply cleanly

releng5-865# cat sio.c.rej
***************
*** 2645,2649 ****
         /*
         * Set our timeout period to 1 second if no polled devices are open.
-       * Otherwise set it to max(1/200, 1/hz).
         * Enable timeouts iff some device is open.
         */
--- 2662,2666 ----
         /*
         * Set our timeout period to 1 second if no polled devices are open.
+       * Otherwise, set it to max(1/1000, 1/hz).
         * Enable timeouts iff some device is open.
         */
releng5-865#  



More information about the freebsd-bugs mailing list