Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Mar 1995 11:13:17 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        henryk@gaja.ipan.lublin.pl, terry@cs.weber.edu
Cc:        freebsd-bugs@FreeBSD.org
Subject:   Re: QIC-80 problem
Message-ID:  <199503080113.LAA30812@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>Alternately, the kernel timer code, if used for an outcall on
>a retriggerable one shot, could be used to drive the floppy
>tape effectively in real time as a logical kernel thread at
>timer interrupt level.

>This would require fixing some timer issues that nobody agrees
>with me that they should be fixed and rewriting the floppy tape
>driver about 20%.

I recently noticed that the standard timer code doesn't guarantee any
upper bounds for timeouts.  softclock() runs at a lower priority than
all hardware interrupts.  It is possible for a fast device on a slow
interface to keep the system busy handling interrupts so that
softclock() never runs.  A fast EIDE drive using the old IDE interface
can probably do this (unless the system isn't programmed well enough to
keep the data streaming :-]).

The one shot timer would have to be handled at a higher priority than
softclock() or its resolution would be lost.  It wouldn't necessarily
work to use the same priority as the device that requested the timeout.
The ft priority would have to be higher than the wd priority to avoid
the above problem.  This would require large reorganizations because
the ft priority and the wd priority are currently identical (bio).

Bruce



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