Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Oct 2004 14:03:04 -0600 (MDT)
From:      Doug Russell <drussell@saturn-tech.com>
To:        John Von Essen <john@essenz.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: hacking SCO....
Message-ID:  <20041009135118.X41465-100000@mxb.saturn-tech.com>
In-Reply-To: <20041009125651.H41465-100000@mxb.saturn-tech.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Gotta love when you reply to your own posts...  :)

On Sat, 9 Oct 2004, Doug Russell wrote:

> If it has a BIOS it should have the verify tool in there...
>
> All the verify tool does, though, is issue a verify command to each
> sector.  You can do this yourself, even on a running system, also.

I meant to add a couple more notes about the modepages....

The number (or maximum time -- it's drive dependent) of retries for
regular reads and writes are adjustable in modepage 1.

There are alternate settings for the VERIFY commands (like sent to the
drive in the BIOS verify utility) on the VERIFY page (modepage 7).

Reading the docs for the actual drive in question is the only way you can
tell EXACTLY what is done by each setting, and it does take a little
research to understand exactly what is going on, but there are LOTS of
nice knobs to twiddle on most disks.

You might have to add some things to /usr/src/share/misc/scsi_modes
(on freebsd) to be able to edit all the possible options on some disks
using the editor routines.  For example, I created the following entry for
Seagate disks like all my ST19171WC (about 60) and ST15150W drives (20+)
that actually understands things like the cache segmentation size (how
many little chunks of cache it should hold, and therefore how big each
is, which is a VERY nice tuneable for a heavy-multi-user server versus
single user A/V RAID array disk tuning; multi-user, you want lots of
little cache segments...  streaming use, you want a couple of huge
segments):

0x08 "Caching Page" {
        {IC (Initiator Control enable)} t1
        {ABPF (ABort Pre-Fetch on selection)} t1
        {CAP (Caching Analysis Permitted)} t1
        {DISC (DISContinuity)} t1
        {SIZE (cache segmentation by SIZE enable)} t1
        {WCE (Write Cache Enable)} t1
        {MF (prefetch Multiplication Factor)} t1
        {RCD (Read Cache Disable)} t1
        {Demand Retention Priority} t4
        {Write Retention Priority} t4
        {Disable Pre-fetch Transfer Length} i2
        {Minimum Pre-fetch} i2
        {Maximum Pre-fetch} i2
        {Maximum Pre-fetch Ceiling} i2
        {FSW (Force Sequential Write)} t1
        {LBCSS (Logical Block Cache Segment Size)} t1
        {DRA (Disable Read-Ahead)} t1
        {Reserved} *t5
        {Number of Cache Segments} i1
        {Cache Segment Size} i2
        {Reserved} *i1
        {Non-Cache Segment Size} i3

I turn off all retries, etc, and set the drive to do full error reporting
before I run any tests.  (You don't want the drive correcting anything
itself, you want to report EVERYTHING...)

Modepages are fun.  :)

Later......						<Doug>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041009135118.X41465-100000>