Nicolas Williams wrote:
On Tue, Jul 27, 2010 at 12:47:31PM -0700, Garrett D'Amore wrote:
I'm really confused here.  Why run in an emulation mode at all?  It
seems like we can align and use 4K blocks directly, then we should
*always* do so - at least for those devices which have a 4K physical
block size.  The "emulated" block size might be helpful for legacy OS,
but we can do better, can't we?

Is there a reason that this we would ever, under normal circumstances,
want to use RMW on these devices?  Is there a reason that this should
even be exposed as a tunable to customers?

Probably when accessing UFS, FAT, and other such filesystems.
Yes, For other file systems or applications which still issue non-4K aligned I/Os to those SSDs which has low performance RMW in f/w, turn on RMW in sd can greatly improve the performance, our experiments show 100x faster than RMW in f/w. But for those disk drives which perform RMW better at f/w, we should turn
RMW in sd driver off.  This is one reason we need this tunable.
But I don't get why this needs to be a tunable either, at least for ZFS,
since we could ensure that ZFS always does 4KB aligned writes, and then
who cares if UFS, FAT, and friends run slow on flash.
For ZFS, which now uses READ CAPACITY 16 (if succeed) to get the physical block size of SSD. If the physical block size is 4096, ZFS aligns its minimal I/O size and request address at 4K boundary which can get best performance. But most of the SSDs now still report 512B physical sector size or even do not support physical sector size at all, and some of them also has bad RMW performance in f/w. in this case, we should turn on RMW in sd for them. that's another reason
we need this tunable.

Thanks.
-bo
Nico

_______________________________________________
opensolaris-arc mailing list
opensolaris-arc@opensolaris.org

Reply via email to