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

Reply via email to