Roch wrote:
Check here:
http://cvs.opensolaris.org/source/xref/on/usr/src/uts/common/fs/zfs/vdev_disk.c#157
distilled version:
vdev_disk_open(vdev_t *vd, uint64_t *psize, uint64_t *ashift)
/*...*/
/*
* If we own the whole disk, try to enable disk write caching.
* We ignore errors because it's OK if we can't do it.
*/
Which to me implies, "when a disk pool is mounted/created, enable write cache".
(and presumably leave it on indefinately)
The intersting thing is, dtrace with
fbt::ldi_ioctl:entry { printf("ldi_ioctl called with %x\n",args[1]); }
says that some kind of ldi_ioctl IS called, when I create a test zpool with
these sata disks.
specific ioctls called would seem to be:
x422
x425
x42a
and I believe DKIOCSETWCE is x425.
HOWEVER... checking with format -e on those disks, says that write cache is
NOT ENABLED after this happens.
And interestingly, if I augment the dtrace with
fbt::sata_set_cache_mode:entry,
fbt::sata_init_write_cache_mode:entry
{
printf("%s called\n",probefunc);
}
the sata-specific set-cache routines, are NOT getting called. according to
dtrace, anyways.... ?
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss