Date: Sun, 27 Jul 2008 20:26:46 +0200 From: Peter Schuller <peter.schuller@infidyne.com> To: Pawel Jakub Dawidek <pjd@freebsd.org> Cc: freebsd-fs@freebsd.org Subject: Re: Asynchronous writing to zvols (ZFS) Message-ID: <200807272026.54907.peter.schuller@infidyne.com> In-Reply-To: <20080726205118.GB1345@garage.freebsd.pl> References: <200807262005.54235.peter.schuller@infidyne.com> <20080726205118.GB1345@garage.freebsd.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] 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@infidyne.com>' Key retrieval: Send an E-Mail to getpgpkey@scode.org E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEABECAAYFAkiMve4ACgkQDNor2+l1i323JQCeJGz+HHjH3+7otXK8uQTgiCHx N/MAn2pTreSDYOpn4KrzwXM2CJIe9OLr =PNCr -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807272026.54907.peter.schuller>
