Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Dec 2001 16:22:47 +1100
From:      Peter Jeremy <peter.jeremy@alcatel.com.au>
To:        Poul-Henning Kamp <phk@critter.freebsd.dk>
Cc:        David Greenman <dg@root.com>, Bruce Evans <bde@zeta.org.au>, Matthew Dillon <dillon@apollo.backplane.com>, Mike Silbersack <silby@silby.com>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/dev/sio sio.c
Message-ID:  <20011224162247.B85044@gsmx07.alcatel.com.au>
In-Reply-To: <61654.1009097922@critter.freebsd.dk>; from phk@critter.freebsd.dk on Sun, Dec 23, 2001 at 09:58:42AM %2B0100
References:  <20011222193231.D24034@nexus.root.com> <61654.1009097922@critter.freebsd.dk>

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

On Sun, Dec 23, 2001 at 09:58:42AM +0100, Poul-Henning Kamp wrote:
>Bruce has a very valid point here:  If our bad^H^H^Hlousy interrupt
>latency is not visible to developers, people will not think about
>it until our entire kernel has become a slow monster.

Then the logical solution would seem to be to use FIFO_RX_HIGH in
-CURRENT and change it to FIFO_RX_MEDH in -STABLE.  This fits into
the same category as the malloc(3) defaults in -CURRENT which are
designed to flush out mis-behaving programs.  An even better
solution would be to make this a sysctl or automatically tune
itself.

>The rest of the project doesn't notice lousy interrupt latency
>until timecounters overflow or serial ports drop characters.

I'm not sure that even FIFO_RX_HIGH is enough to flush out the
problems.  Earlier this year, there was a bug in the Alpha that
resulted in all interrupts being scheduled as threads.  AFAIK,
I was the only person who noticed (and in my case, I was still
getting SILO overflows at 38.4kbps with FIFO_RX_MEDH).

>My guess would be that only four people in the project who have
>ever measured our interrupt latency: Bruce, Louie, Warner and me.

That's definitely an under-estimate.  Andrew Gallatin posted his
latency measurements on a Alpha h/w.  I think I've seen one or two
other people indicate that they'd made measurements on -hackers.  I've
also done some limited latency testing on both i386 and Alpha's.

>If our interrupt latency is so bad that we cannot run a serial port
>as well on a PIII/Athlon 1GHz cpu as we could on a 486/66 a few
>years back, then the solution is not to make the serial driver more
>defensive, the solution is to fix the interrupt latency.

Unfortunately, I can't see this happening.
1) The migration of the PC-card interface to Cardbus means that PC-
   card devices no longer have the option of a fast interrupt.  This
   will bite everyone who uses a laptop without a real builtin modem.
2) -CURRENT seems to be moving further towards having all interrupts
   handled via kernel threads, rather than in real time.

Peter

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?20011224162247.B85044>