cvs commit: src/sys/contrib/opensolaris/uts/common/fs/zfs zfs_vnops.c

Joao Barros joao.barros at
Fri Apr 27 20:37:32 UTC 2007

On 4/26/07, Pawel Jakub Dawidek <pjd at> wrote:
> pjd         2007-04-26 17:07:50 UTC
>   FreeBSD src repository
>   Modified files:
>     sys/contrib/opensolaris/uts/common/fs/zfs zfs_vnops.c
>   Log:
>   MFp4: Optimize mappedwrite() and mappedread() functions to write/read as much
>   non-mapped data as possible at once and not page-by-page. Which this change we
>   combain I/Os, but also saves many VM_OBJECT_UNLOCK()/VM_OBJECT_LOCK()
>   operations.
>   Simple 'fsx -l 33554432 -o 524288 -N 10000 /tank/fsx' test shows ~23%
>   performance increase.
>   Revision  Changes    Path
>   1.11      +58 -31    src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c

With a kernel from April 14 a 'make kernel' took around 35 mins.
I upgraded the system last night and just did a compile test. It took:
924.121u 506.504s 25:57.56 91.8%        3097+1614k 71+4605io 2447pf+0w
All this with the root fs as ZFS.
With the root fs on UFS the same operation took around 25 minutes so
I'd say your last commits greatly improve zfs performance and brings
it on par with ufs, at least with this particular workload.
Of course this isn't a real benchmark but my numbers did change :)

Again, nice work Pawel!

Joao Barros

More information about the cvs-src mailing list