Asynchronous writing to zvols (ZFS)

Peter Schuller peter.schuller at infidyne.com
Sun Jul 27 18:25:48 UTC 2008


Hello,

> The problem is that we don't between async and sync I/O request on GEOM
> level, that's why I decided to commit a ZIL log after each write, which
> wasn't very smart it seems. This is handled differently in version I've
> in perforce. Could you try the below patch and see how it performs now?
>
> 	http://people.freebsd.org/~pjd/patches/zvol.c.patch

The above (though the files has moved, for anyone else reading wanting to 
apply) does eliminate the synchronicity problem. I am now seeing 5-15 
MB/second write speeds to the zvol, with 100% constituent disk utilization.

I am not sure why I don't see faster writes; I get more like 40-60 when 
writing to a file in a ZFS file system on the same pool. But regardless, the 
synchronisity issue is gone.

Does your comment above regarding distinguishing bewteen sync and asynch apply 
to the section of code affected by the above patch, or did you mean there is 
some other place above the zvol handling where there is lack of distinction?

That is, is the end-effect of the above change that we *never* do synchronous 
writes (because the fact that a write is supposed to be synchronous is 
somehow lost before it reaches that point)?

I understand a zil_commit is only required on BIO_FLUSH requests, which is 
what the patch fixes. But I get the impression from your phrasing above that 
the reason that a zil_commit was done on every I/O from the get go was in an 
effort to honor actual synchronous writes by conservatively *always* doing 
synchronous writes, because the synchronicity of synchronous writes would not 
be propagated down to the zvol class. I wouldn't want to sacrifice 
correctness just to get the speed ;)

-- 
/ Peter Schuller

PGP userID: 0xE9758B7D or 'Peter Schuller <peter.schuller at infidyne.com>'
Key retrieval: Send an E-Mail to getpgpkey at scode.org
E-Mail: peter.schuller at infidyne.com Web: http://www.scode.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20080727/6f356874/attachment.pgp


More information about the freebsd-fs mailing list