Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Dec 2001 15:43:22 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        David Greenman <dg@root.com>
Cc:        Mike Silbersack <silby@silby.com>, Matt Dillon <dillon@FreeBSD.org>, <cvs-committers@FreeBSD.org>, <cvs-all@FreeBSD.org>
Subject:   Re: cvs commit: src/sys/dev/sio sio.c
Message-ID:  <20011223154024.R10568-100000@gamplex.bde.org>
In-Reply-To: <20011222193445.E24034@nexus.root.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 22 Dec 2001, David Greenman wrote:

[bde wrote]
> >> >The driver used to have dynamic fifo trigger reduction, mainly to
> >> >support many active sio devices, but this was found harmful and backed
> >> >out:
> >> >
> >> >! RCS file: /home/ncvs/src/sys/dev/sio/sio.c,v
> >> >! Working file: sio.c
> >> >! head: 1.353
> >> >! ...
> >> >! ----------------------------
> >> >! revision 1.53
> >> >! date: 1994/09/21 19:39:25;  author: davidg;  state: Exp;  lines: +3 -1
> >> >! #if 0'd evil dynamic fifo trigger level adjustment; it just bit me and
> >> >! a couple of other people again.
> >> >! ----------------------------
> >>
> >>    You know, it's really weird to see stuff that I wrote from more than
> >> 7 years ago. I can only imagine how Kirk feels when he sees log messages
> >> from the 80's. :-)
> >
> >At least if they have been untouched for that long then they were probably
> >correct :-).
>
>    Correct for the time, perhaps, but hardware has gotten faster and FreeBSD
> kernel latency has apparantly gotten worse.

Er, I meant Kirks change :-).

Kernel latency has only gotten significantly worse in -current, except in
my version of course.  To fix it, I had to essentially bring back interrupt
masking in software using ipending (so that interrupts don't need to be
masked while spinlocks are held; this is easier than keeping spinlocked
regions short).

I must admit that I use the high trigger level partly as a canary to detect
breakage of interrupt latency.

> >>    As I recall, the dynamic adjustment increased interrupt overhead each
> >> time it ratcheted down, causing it to be even more likely to lower it
> >> further until it was "1", disabling the overhead reduction benefits of
> >> the fifo completely. The cure became worse than the disease.
> >
> >I once planned to bring this back, at least as an option, with the
> >ratcheting down limited to 1 step.  I never got around to this because
> >the problem seemed to have gone away except for unusual hardware
> >combinations.
>
>    Perhaps reduce it to the mid-point (8), but not below that.

And be silent about this and the first overrun to avoid scaring people :-).

Bruce


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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011223154024.R10568-100000>