Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Aug 2002 08:51:15 -0700
From:      "Maksim Yevmenkin" <Maksim.Yevmenkin@exodus.net>
To:        "Bruce Evans" <bde@zeta.org.au>
Cc:        <current@FreeBSD.ORG>
Subject:   RE: Interrupt vs. polling on -current
Message-ID:  <45258A4365C6B24A9832BFE224837D552B1238@SJDCEX01.int.exodus.net>

next in thread | raw e-mail | index | archive | help

On Fri, 9 Aug 2002, Maksim Yevmenkin wrote:

> > 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

> This configuration should be expected to work poorly at best.

hmmm... i have a couple of latops here at home, one made by
Toshiba and another by IBM and they both have similar configuration.
may be such configuration is normal for laptops?

Both laptop/cards seems to work fine in W2K. I do not know much
about PC-CARD controllers, but somehow each PC-CARD i plug into
slot gets a different interrupt line.

[ ... ]

> > 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?
>=20
> No, but the 3Com driver apparently is.  The sio driver wants to have
> fast interrupts.  It can't have them with the irq is shared, so its
> worst-case interrupt latency for a single serial port is increased
> from about 50 usec to many msec, depending other interrupt activity
> in the system (not limited to that for the shared irq except in some
> configurations).  Silo overflows occur at 115200 bps when the latency
> is more than about 1.5 msec.

perhaps, i said it wrong. I only plug *one* PC-CARD at a time, so
it only 3com *or* Xircom. So irq11 gets shared between USB, NIC in
docking station, PC-CARD controller and Xircom card.=20

BTW, i see "silo overflow" messages when i run ppp via null-modem
cable. in this configuration i'm using serial port 0 which is on
board and hase irq 4 with fast interrupts.

> > 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?
>
> This points to  bug(s) in the 3Com driver.  Perhaps its interrupt
> handler just runs for too long to determine that irq11's for the
> serial device are not for it.  Running in polled mode decreases

yes, and that is what i was thinking too. but now i think it is
not only 3com driver's fault. The driver just reads one port and
check one bit, if it not set then interrupt is not for it.=20

> the number of interrupts that it looks at (if there are a lot of
> serial interrupts), and prevents the 3Com interrupt handling from
> interfering with serial interrupt handling (because timeouts have
> lower priority than all other interrupts).

just like i said, there is *only one* card in the PC-CARD slot
and 3Com *USB* dongle.

[ ... ]

> > 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.
>=20
> FreeBSD on a 486/33 can handle about 40000 serial interrupts per =
second
> to do one character of i/o per interrupt).  Pessimizations in -current
> have only degraded this by a small factor (2?), provided the driver
> uses fast interrupts.  Lose another small factor (2?) for normal =
interrupts
> (using normal interrupts only loses a large factor for latency).

if my calculations are correct -current should handle about 10,000
interrupt/sec from sio, right? i'm sorry, but it is not what i see
here.

thanks,
max





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?45258A4365C6B24A9832BFE224837D552B1238>