(kernel 4.0-20000208-CURRENT)
I have a question about adstrategy() in ata-disk.c: it says
bufqdisksort() -- which appends to the drive queue using CSCAN,
and immediately, without a check for adp->active, there is
ad_start() -- which removes it from there and puts it into the
controller queue, thereby nullifying CSCAN's effect
completely (drive queue length always = 0 or 1) and
blowing up the controller TAILQ to occasional spurts
with tens of requests (I measured this).
on browsing through cvsweb, I find that such a check used to be there
earlier ( bufqdisksort(&adp->queue, bp); if (!adp->active) ad_start(adp); )
till "1.14 Fri Jun 25 9:02:59 1999 UTC by sos" (the 9th ATA update), and the
only thing in the commit log that's making sense to me is:
"The disk driver has been changed a bit to prepare for tagged
queing, which is next on my list." -- sos
What's the exact rationale behind doing away with CSCAN? is it temporary?
Its not entirely clear to me how "tagged queueing" (whatever that is) would
remedy the fact that requests are taken away from drive queues as soon as
they're put there.
Hoping for enlightenment,
--
Sitaram Iyer <[EMAIL PROTECTED]> http://www.cs.rice.edu/~ssiyer/
Phone (off) 713-348-2265 (rice xBANK)
(home) 713-383-6279 (713-EVE-MARY), and if that *keeps ringing*, then
713-799-8980 (my other residential line)
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message