swi4: clock sio uses 10% cpu

Holger Kipp hk at alogis.com
Fri Apr 21 09:53:52 UTC 2006


On Fri, Apr 21, 2006 at 10:52:00AM +0200, Helge Oldach wrote:
> Holger,
> 
> >puc0: <Titan PCI-800H> port 0xa400-0xa41f,0xa000-0xa01f mem 0xdf800000-0xdf800fff,0xdf000000-0xdf000fff irq 10 at device 11.0 on pci0
> >puc1: <Titan PCI-800H> port 0x9800-0x981f,0x9400-0x941f mem 0xde800000-0xde800fff,0xde000000-0xde000fff irq 10 at device 11.1 on pci0
> 
> The Titan device shows up as two PCI devices with shared interrupt.
> Shared interrupts are supported by the puc(4) driver, but not in fast
> interrupt mode. This eats a lot of CPU, causes silo overflows and
> character loss. This is what the kernel tells you:
> 
> >sio12: unable to activate interrupt in fast mode - using normal mode
> 
> If possible try to make these two different irqs, or disable "half of
> the board".

No, that is not possible :-( I have recompiled the kernel with option
PUC_FASTINTR, so now I don't have 'unable to activate interrupt in
fast mode' any more, but I am not sure if this is good or not.

I only see a neglegible amount of irqs on puc (irq 10), which is
far less than 1 per second - usually zero.

Oh, and mgetty gives me on some modems (only on PCI-800H):

04/21 11:41:33 add  mgetty: interim release 1.1.34-Nov30
04/21 11:41:33 add  check for lockfiles
04/21 11:41:33 add  locking the line
04/21 11:41:34 add  lowering DTR to reset Modem
04/21 11:41:34 add  send: \dATQ0V1H0[0d]
04/21 11:41:35 add  waiting for ``OK''
04/21 11:41:55 add  timeout in chat script, waiting for `OK'
04/21 11:41:55 add  init chat timed out, trying force-init-chat
04/21 11:41:55 add  send: \d[10][03]\d\d\d+++\d\d\d[0d]\dATQ0V1H0[0d]
04/21 11:41:59 add  waiting for ``OK''
04/21 11:42:19 add  timeout in chat script, waiting for `OK'
04/21 11:42:19 add  init chat failed, exiting...: Interrupted system call
04/21 11:42:19 ##### failed in mg_init_data, dev=cuadd, pid=10057

So modem does not want to reset... Might this be related?
Is it possible to find out if characters are not transmitted
correctly - without any messages in /var/log/messages and 
no silo overflows?

I have reduced HZ (from 1000 to 100) and increased cp4ticks
in sio.c which got rid of silo overflows.  

This crappy PC irq-handling is really annoying. I hate this. Hmm, should
have taken a VScom PCI-800 without the 'H', maybe.

Regards,
Holger

Anyway, here is the current dmesg from /var/run:

--- dmesg (options PUC_FASTINTR) ---------------------------------------------
Copyright (c) 1992-2006 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 6.1-PRERELEASE #5: Thu Apr 20 22:11:42 CEST 2006
    root at dialout.dout1.b.intern:/usr/obj/usr/src/sys/B-DIALOUT
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium III/Pentium III Xeon/Celeron (501.14-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x673  Stepping = 3
  Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory  = 134205440 (127 MB)
avail memory = 121810944 (116 MB)
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
cpu0 on motherboard
pcib0: <Intel 82443BX (440 BX) host to PCI bridge> pcibus 0 on motherboard
pir0: <PCI Interrupt Routing Table: 7 Entries> on motherboard
$PIR: Using invalid BIOS IRQ 15 from 0.10.INTA for link 0x62
$PIR: Using invalid BIOS IRQ 14 from 0.6.INTA for link 0x63
pci0: <PCI bus> on pcib0
agp0: <Intel 82443BX (440 BX) host to PCI bridge> mem 0xe4000000-0xe7ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 4.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xb800-0xb80f at device 4.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
pci0: <serial bus, USB> at device 4.2 (no driver attached)
pci0: <bridge> at device 4.3 (no driver attached)
ahc0: <Adaptec aic7890/91 Ultra2 SCSI adapter> port 0xb000-0xb0ff mem 0xe1000000-0xe1000fff irq 14 at device 6.0 on pci0
ahc0: [GIANT-LOCKED]
aic7890/91: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs
fxp0: <Intel 82559 Pro/100 Ethernet> port 0xa800-0xa83f mem 0xe0800000-0xe0800fff,0xe0000000-0xe00fffff irq 15 at device 10.0 on pci0
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:d0:b7:16:53:60
puc0: <Titan PCI-800H> port 0xa400-0xa41f,0xa000-0xa01f mem 0xdf800000-0xdf800fff,0xdf000000-0xdf000fff irq 10 at device 11.0 on pci0
sio12: <Titan PCI-800H> on puc0
sio12: type 16550A
sio13: <Titan PCI-800H> on puc0
sio13: type 16550A
sio14: <Titan PCI-800H> on puc0
sio14: type 16550A
sio15: <Titan PCI-800H> on puc0
sio15: type 16550A
puc1: <Titan PCI-800H> port 0x9800-0x981f,0x9400-0x941f mem 0xde800000-0xde800fff,0xde000000-0xde000fff irq 10 at device 11.1 on pci0
sio16: <Titan PCI-800H> on puc1
sio16: type 16550A
sio17: <Titan PCI-800H> on puc1
sio17: type 16550A
sio18: <Titan PCI-800H> on puc1
sio18: type 16550A
sio19: <Titan PCI-800H> on puc1
sio19: type 16550A
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xcd7ff,0xd0000-0xd0fff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
fdc0: <Enhanced floppy controller> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: [FAST]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <32 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
sio10 at port 0x130-0x137 flags 0xb05 on isa0
sio10: type 16550A (multiport)
sio11 at port 0x138-0x13f irq 12 flags 0xb05 on isa0
sio11: type 16550A (multiport master)
sio4 at port 0x100-0x107 flags 0xb05 on isa0
sio4: type 16550A (multiport)
sio5 at port 0x108-0x10f flags 0xb05 on isa0
sio5: type 16550A (multiport)
sio6 at port 0x110-0x117 flags 0xb05 on isa0
sio6: type 16550A (multiport)
sio7 at port 0x118-0x11f flags 0xb05 on isa0
sio7: type 16550A (multiport)
sio8 at port 0x120-0x127 flags 0xb05 on isa0
sio8: type 16550A (multiport)
sio9 at port 0x128-0x12f flags 0xb05 on isa0
sio9: type 16550A (multiport)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0401> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
unknown: <PNP0c01> can't assign resources (memory)
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <32 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
sio10 at port 0x130-0x137 flags 0xb05 on isa0
sio10: type 16550A (multiport)
sio11 at port 0x138-0x13f irq 12 flags 0xb05 on isa0
sio11: type 16550A (multiport master)
sio4 at port 0x100-0x107 flags 0xb05 on isa0
sio4: type 16550A (multiport)
sio5 at port 0x108-0x10f flags 0xb05 on isa0
sio5: type 16550A (multiport)
sio6 at port 0x110-0x117 flags 0xb05 on isa0
sio6: type 16550A (multiport)
sio7 at port 0x118-0x11f flags 0xb05 on isa0
sio7: type 16550A (multiport)
sio8 at port 0x120-0x127 flags 0xb05 on isa0
sio8: type 16550A (multiport)
sio9 at port 0x128-0x12f flags 0xb05 on isa0
sio9: type 16550A (multiport)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0401> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
unknown: <PNP0c01> can't assign resources (memory)
unknown: <PNP0303> can't assign resources (port)
unknown: <PNP0c02> can't assign resources (port)
Timecounter "TSC" frequency 501138569 Hz quality 800
Timecounters tick every 10.000 msec
IP Filter: v4.1.8 initialized.  Default = pass all, Logging = enabled
da0 at ahc0 bus 0 target 6 lun 0
da0: <IBM DNES-309170W SAK0> Fixed Direct Access SCSI-3 device 
da0: 40.000MB/s transfers (20.000MHz, offset 31, 16bit), Tagged Queueing Enabled
da0: 8748MB (17916240 512 byte sectors: 255H 63S/T 1115C)
cd0 at ahc0 bus 0 target 4 lun 0
cd0: <PLEXTOR CD-ROM PX-40TS 1.10> Removable CD-ROM SCSI-2 device 
cd0: 20.000MB/s transfers (20.000MHz, offset 15)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Trying to mount root from ufs:/dev/da0s1a



More information about the freebsd-stable mailing list