Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 09 Aug 2002 11:19:00 -0700
From:      Maksim Yevmenkin <myevmenk@exodus.net>
To:        current@freebsd.org
Subject:   Interrupt vs. polling on -current
Message-ID:  <3D540794.E487F2F4@exodus.net>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------87BD8585676EB4DD05773F78
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hackers,

Can anyone shed some light on the following problem:

OS: FreeBSD-current DP1 (dmesg attached)
Laptop: Toshiba Tecra 8100 (docked)
Hardware: 3Com Bluetooth USB dongle, 3Com Bluetooth PC-CARD
          Xircom CBT PC-CARD (with 16550A UART)

First of all, irq 11 gets shared between PC-CARD controller,
USB controller, NIC in docking station (see dmesg). Everything
that i plug into PC-CARD slots also get irq 11 (which is
normal - i think). Also i have disabled "interrupt harvesting".

My tests are very simple. I plug USB dongle and one PC-CARD
and try to pump data between them as fast as possible. The
data blocks sizes are between 63 and 1500 bytes. 

The Xircom card just does not work :( I' getting a lot of
"silo overflow" messages no matter what i try. I checked
list archives and source - not much look. Is "sio" driver
totally hopeless?

The 3Com PC-CARD is a little bit better, but after some time
it also starting to drop bytes.

This morning i change 3Com driver to use polling, and,
to my extreme surprise it work much, much better now. Also
the interrupt load (according to top) has reduced to at
least half. I have not noticed any system slow down. So
what is up this that? Does that mean that for slow devices
like serial ports etc. polling is better? Does anyone tried
to use polling in "sio" driver? I just can't believe that
FreeBSD on my Pentium-III/600 can't handle lousy 500-700
interrupts a second from PC-CARD. Can anyone point me
into right direction, because i'm obviously doing something
wrong here.

thanks,
max
--------------87BD8585676EB4DD05773F78
Content-Type: text/plain; charset=us-ascii;
 name="messages"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="messages"

Aug  9 10:10:08 beetle kernel: Copyright (c) 1992-2002 The FreeBSD Project.
Aug  9 10:10:08 beetle kernel: Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
Aug  9 10:10:08 beetle kernel: The Regents of the University of California. All rights reserved.
Aug  9 10:10:08 beetle kernel: FreeBSD 5.0-DP1 #20: Thu Aug  8 15:54:09 PDT 2002
Aug  9 10:10:08 beetle kernel: max@beetle.digisle.com:/usr/src/sys/i386/compile/BEETLE
Aug  9 10:10:08 beetle kernel: Preloaded elf kernel "/boot/kernel/kernel" at 0xc0374000.
Aug  9 10:10:08 beetle kernel: Preloaded elf module "/boot/kernel/nmdm.ko" at 0xc03740a8.
Aug  9 10:10:08 beetle kernel: Timecounter "i8254"  frequency 1193182 Hz
Aug  9 10:10:08 beetle kernel: Timecounter "TSC"  frequency 597786416 Hz
Aug  9 10:10:08 beetle kernel: CPU: Pentium III/Pentium III Xeon/Celeron (597.79-MHz 686-class CPU)
Aug  9 10:10:08 beetle kernel: Origin = "GenuineIntel"  Id = 0x681  Stepping = 1
Aug  9 10:10:08 beetle kernel: Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
Aug  9 10:10:08 beetle kernel: real memory  = 201195520 (196480K bytes)
Aug  9 10:10:08 beetle kernel: avail memory = 191938560 (187440K bytes)
Aug  9 10:10:08 beetle kernel: Pentium Pro MTRR support enabled
Aug  9 10:10:08 beetle kernel: Using $PIR table, 10 entries at 0xc00f4ee0
Aug  9 10:10:08 beetle kernel: npx0: <math processor> on motherboard
Aug  9 10:10:08 beetle kernel: npx0: INT 16 interface
Aug  9 10:10:08 beetle kernel: pcib0: <Intel 82443BX (440 BX) host to PCI bridge> at pcibus 0 on motherboard
Aug  9 10:10:08 beetle kernel: pci0: <PCI bus> on pcib0
Aug  9 10:10:08 beetle kernel: pcib1: <PCI-PCI bridge> at device 1.0 on pci0
Aug  9 10:10:08 beetle kernel: pci1: <PCI bus> on pcib1
Aug  9 10:10:08 beetle kernel: pci1: <display, VGA> at device 0.0 (no driver attached)
Aug  9 10:10:08 beetle kernel: isab0: <PCI-ISA bridge> at device 3.0 on pci0
Aug  9 10:10:08 beetle kernel: isa0: <ISA bus> on isab0
Aug  9 10:10:08 beetle kernel: isab1: <PCI-ISA bridge> at device 5.0 on pci0
Aug  9 10:10:08 beetle kernel: atapci0: <Intel PIIX4 ATA33 controller> port 0xfff0-0xffff at device 5.1 on pci0
Aug  9 10:10:08 beetle kernel: ata0: at 0x1f0 irq 14 on atapci0
Aug  9 10:10:08 beetle kernel: ata1: at 0x170 irq 15 on atapci0
Aug  9 10:10:08 beetle kernel: uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xff80-0xff9f irq 11 at device 5.2 on pci0
Aug  9 10:10:08 beetle kernel: usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
Aug  9 10:10:08 beetle kernel: usb0: USB revision 1.0
Aug  9 10:10:08 beetle kernel: uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
Aug  9 10:10:08 beetle kernel: uhub0: 2 ports with 2 removable, self powered
Aug  9 10:10:08 beetle kernel: uhub1: Texas Instruments UT-USB41 hub, class 9/0, rev 1.00/1.00, addr 2
Aug  9 10:10:08 beetle kernel: uhub1: 4 ports with 4 removable, self powered
Aug  9 10:10:08 beetle kernel: pci0: <bridge, PCI-unknown> at device 5.3 (no driver attached)
Aug  9 10:10:08 beetle kernel: pci0: <unknown> at device 9.0 (no driver attached)
Aug  9 10:10:08 beetle kernel: pci_cfgintr_linked: linked (60) to hard-routed irq 11
Aug  9 10:10:08 beetle kernel: pci_cfgintr: 0:11 INTA routed to irq 11
Aug  9 10:10:08 beetle kernel: pcic0: <Toshiba ToPIC100 PCI-CardBus Bridge> irq 11 at device 11.0 on pci0
Aug  9 10:10:08 beetle kernel: pcic0: PCI Memory allocated: 0x44000000
Aug  9 10:10:08 beetle kernel: pccard0: <PC Card bus (classic)> on pcic0
Aug  9 10:10:08 beetle kernel: pci_cfgintr_linked: linked (61) to hard-routed irq 11
Aug  9 10:10:08 beetle kernel: pci_cfgintr: 0:11 INTB routed to irq 11
Aug  9 10:10:08 beetle kernel: pcic1: <Toshiba ToPIC100 PCI-CardBus Bridge> irq 11 at device 11.1 on pci0
Aug  9 10:10:08 beetle kernel: pcic1: PCI Memory allocated: 0x44001000
Aug  9 10:10:08 beetle kernel: pccard1: <PC Card bus (classic)> on pcic1
Aug  9 10:10:08 beetle kernel: pci0: <multimedia, audio> at device 12.0 (no driver attached)
Aug  9 10:10:08 beetle kernel: xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xfd80-0xfdff mem 0xefff7f80-0xefff7fff irq 11 at device 15.0 on pci0
Aug  9 10:10:08 beetle kernel: xl0: Ethernet address: 00:00:39:8c:1e:26
Aug  9 10:10:08 beetle kernel: miibus0: <MII bus> on xl0
Aug  9 10:10:08 beetle kernel: xlphy0: <3c905C 10/100 internal PHY> on miibus0
Aug  9 10:10:08 beetle kernel: xlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
Aug  9 10:10:08 beetle kernel: orm0: <Option ROM> at iomem 0xc0000-0xcbfff on isa0
Aug  9 10:10:08 beetle kernel: atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
Aug  9 10:10:08 beetle kernel: atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
Aug  9 10:10:08 beetle kernel: kbd0 at atkbd0
Aug  9 10:10:08 beetle kernel: psm0: <PS/2 Mouse> irq 12 on atkbdc0
Aug  9 10:10:08 beetle kernel: psm0: model MouseMan+, device ID 0
Aug  9 10:10:08 beetle kernel: fdc0: <enhanced floppy controller (i82077, NE72065 or clone)> at port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
Aug  9 10:10:08 beetle kernel: pmtimer0 on isa0
Aug  9 10:10:08 beetle kernel: sc0: <System console> at flags 0x100 on isa0
Aug  9 10:10:08 beetle kernel: sc0: VGA <16 virtual consoles, flags=0x300>
Aug  9 10:10:08 beetle kernel: sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
Aug  9 10:10:08 beetle kernel: sio0: type 16550A
Aug  9 10:10:08 beetle kernel: vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Aug  9 10:10:08 beetle kernel: unknown: <PNP0303> can't assign resources (port)
Aug  9 10:10:08 beetle kernel: unknown: <PNP0f13> can't assign resources (irq)
Aug  9 10:10:08 beetle kernel: unknown: <PNP0700> can't assign resources (port)
Aug  9 10:10:08 beetle kernel: unknown: <PNP0501> can't assign resources (port)
Aug  9 10:10:08 beetle kernel: IP packet filtering initialized, divert enabled, rule-based forwarding disabled, default to deny, logging disabled
Aug  9 10:10:08 beetle kernel: ata1-slave: timeout waiting for interrupt
Aug  9 10:10:08 beetle kernel: ata1-slave: ATAPI identify failed
Aug  9 10:10:08 beetle kernel: ad0: 11513MB <IBM-DARA-212000> [23392/16/63] at ata0-master UDMA33
Aug  9 10:10:08 beetle kernel: acd0: DVD-ROM <TOSHIBA DVD-ROM SD-C2302> at ata1-master PIO4
Aug  9 10:10:08 beetle kernel: Mounting root from ufs:/dev/ad0s2a
Aug  9 10:10:08 beetle savecore: no core dump
Aug  9 10:10:09 beetle rpcbind: cannot create socket for udp6
Aug  9 10:10:09 beetle rpcbind: cannot create socket for tcp6
Aug  9 10:10:09 beetle lpd[209]: lpd startup: logging=0
Aug  9 10:10:14 beetle kernel: /dev/vmmon: Module vmmon: registered with major=200 minor=0 tag=$Name: build-570 $
Aug  9 10:10:14 beetle kernel: /dev/vmmon: Module vmmon: initialized
Aug  9 10:10:33 beetle kernel: WARNING: driver ptc should register devices with make_dev() (dev_t = "#ptc/0")

--------------87BD8585676EB4DD05773F78--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D540794.E487F2F4>