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>
