(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

Reply via email to