Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Aug 2013 15:12:25 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   Re: svn commit: r254846 - projects/camlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <5219F4A9.2090501@FreeBSD.org>
In-Reply-To: <201308251121.r7PBLA3v033536@svn.freebsd.org>
References:  <201308251121.r7PBLA3v033536@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5219F4A9.2090501>