svn commit: r254846 - projects/camlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Alexander Motin mav at FreeBSD.org
Sun Aug 25 12:12:30 UTC 2013


On 25.08.2013 14:21, Alexander Motin wrote:
> Author: mav
> Date: Sun Aug 25 11:21:10 2013
> New Revision: 254846
> URL: http://svnweb.freebsd.org/changeset/base/254846
>
> Log:
>    Allow GEOM direct dispatch for zvol providers.  Skip request handover to
>    the worker thread if current context allows sleeping (thanks to the direct
>    dispatch in action we are not in GEOM thread).
>
>    Together this doubles zvol performance, reaching up to 300K IOPS on my tests.
>    If there would be unmapped I/O support for zvols, the above value could be
>    even bigger.

I heavily underestimated effect of this change for the case of uncached 
reads and probably synchronous writes. Due to synchronous nature of the 
code, parallel execution introduced by this change can increase 
performance by much more then mentioned two times. With 8-64 threads 
doing uncached random read this change gives 6-10x performance!

Now I am very curios why zvol was made to have only one worker thread 
per zvol, while multiple threads there could give major improvement even 
without direct dispatch.

-- 
Alexander Motin


More information about the svn-src-projects mailing list