I came into possession of a couple of SATA disks which appear to have
their write caches disabled.  'atactl wdN identify' reports, in part:

Device supports following standards:
ATA-1 ATA-2 ATA-3 ATA-4 ATA-5 ATA-6 ATA-7 
Command set support:
        READ BUFFER command (enabled)
        WRITE BUFFER command (enabled)
        Look-ahead (enabled)
        Write cache (disabled)
Serial ATA features:
        Software Settings Preservation (enabled)

Writing to the disk is excruciatingly slow.  'dd'ing /dev/zero to
/dev/rwdNd with bs=128m reported "6951724 bytes/sec" or just under

The disks were probably originally intended to be used with some
RAID controller which did its own caching and so didn't want it on
the storage units themselves.

I'd like to use them as ordinary disks, so having the write caches
enabled would be nice.  Is there any way to do that with tools in

While 'scsictl' has the "setcache" command, there appears to be no
analogue in 'atactl'.  Indeed, there are a number of things 'scsictl'
can do which have parallels on ata devices/busses but which are not
available in 'atactl'.

Perhaps 'drvctl' can fill the gap, but it appears one must have more
low-level knowledge of the device than can be gleaned from "identify".

|/"\ John D. Baker, KN5UKS               NetBSD     Darwin/MacOS X
|\ / jdbaker[snail]mylinuxisp[flyspeck]com    OpenBSD            FreeBSD
| X  No HTML/proprietary data in email.   BSD just sits there and works!
|/ \ GPGkeyID:  D703 4A7E 479F 63F8 D3F4  BD99 9572 8F23 E4AD 1645

Reply via email to