cvs commit: src/sys/dev/ata ata-all.c ata-all.hata-chipset.cata-dma.c ata-pci.c ata-pci.h

Nate Lawson nate at root.org
Tue Apr 8 10:09:21 PDT 2003


On Tue, 8 Apr 2003, Alexander Leidinger wrote:
> On Tue, 08 Apr 2003 15:54:43 +0200
> Dag-Erling Smorgrav <des at ofug.org> wrote:
> 
> > Alexander Leidinger <Alexander at Leidinger.net> writes:
> > > Does this mean we can't use ATA-TQ in situations where we would use TQ
> > > without WC on a SCSI system (read: does it affect softupdates)?
> > 
> > Tagged queueing doesn't make sense without a write cache.  Think about
> > it for a minute.
> 
> It doesn't make sense without some kind of a buffer, I know. With SCSI
> disks you can observe a small difference between TQ with WC enabled and
> TQ with WC disabled. Based upon this I concluded, that SCSI disks seems
> to have a buffer for the WC (with all it's ill side effects in the
> softupdates case) and another buffer for TQ.
> 
> SCSI != ATA, but why design another WC/TQ combination, if I can borrow
> it from the SCSI disks...
> 
> Feel free to correct misunderstandings on my side.

There are several levels of cache:  cache in each drive, cache in the
controller, and the vm/buffer cache in the kernel.  Most modern SCSI
drives have at least 8 MB of cache in the drive.  Some controllers (mostly
RAID) have cache.

Tagged queuing is orthogonal to caching.  TQ allows multiple transactions
to be passed to the drive, allowing it to order and aggregate the requests
as it thinks best.  TQ can be done with no cache because all the drive is
tracking is handles to transactions (typically 16 bit ids).  Think of it
as more like a pipeline than a cache.

This is just a generalization based on SCSI SAM2 (www.t10.org).  BTW, it's
good to avoid "WC" as an abbreviation because it also means "write
combining".

-Nate



More information about the cvs-src mailing list