Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jan 1999 01:35:14 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Matthew Jacob <mjacob@feral.com>
Cc:        "Kenneth D. Merry" <ken@plutotech.com>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/cam cam_xpt.c
Message-ID:  <199901200935.BAA00875@apollo.backplane.com>
References:   <Pine.LNX.4.04.9901192345350.22998-100000@feral-gw>

next in thread | previous in thread | raw e-mail | index | archive | help
:
:The latter I'd believe. The former I question. I seriously doubt that a
:lot of drives have the moxie to effectively do a generation based
:staggered elevator the correctly balances performance with latency.
: -matt
 
    That actually isn't quite what I was refering to.  The kernel already runs
    I/O ops through an elevator algorithm.  Unfortunately, the elevator
    algorithm isn't optimal for a modern drive with a meg of on-board cache.

    Significant performance gains using lots of tags occur in several 
    situations:

    * The kernel does not do a good job prioritizing reads with pending writes
      present, especially ordered pending writes.  With a lot of tags, the
      drive can handle this optimally.  Without tags, read performance is
      seriously degraded in the face of writes.

    * The drive knows the physical layout of the disk better then the kernel.
      For example, many drives store sectors in reverse order on any given
      track to optimize cache fill / DMA operations.

    * The drive may implement a split or zoned cache.  The elevator algorithm
      the kernel tries to do may not be optimal for the cache configuration.
      With a lot of tags, the drive can match read requests to the cache 
      configuration and retire cache hits instantly.

      The kernel has no idea what the drive may have in its cache.  The
      drive could very well have a sector in its cache that the kernel
      would have otherwise delayed commiting the request for due to the
      elevator algorithm.

    * In general terms, the bigger the drive's on-board cache, the more 
      appropriate it is to let the drive order the requests rather then 
      the kernel.


    A lot of drives implement sufficient sophistication in their tag and
    cache handling to make using a lot of tags worthwhile.  Enough that using
    lots of tags really should be the default.  Of course, some drives 
    have firmware bugs, so the Quirks mechanism is a necessity.

					-Matt

					Matthew Dillon 
					<dillon@backplane.com>


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?199901200935.BAA00875>