Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Nov 2014 23:19:12 +0100
From:      Edward Tomasz =?utf-8?Q?Napiera=C5=82a?= <trasz@FreeBSD.org>
To:        Alexander Motin <mav@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r274962 - head/sys/cam/ctl
Message-ID:  <20141124221912.GA8108@brick.home>
In-Reply-To: <201411241137.sAOBbSeF097180@svn.freebsd.org>
References:  <201411241137.sAOBbSeF097180@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 1124T1137, Alexander Motin wrote:
> Author: mav
> Date: Mon Nov 24 11:37:27 2014
> New Revision: 274962
> URL: https://svnweb.freebsd.org/changeset/base/274962
> 
> Log:
>   Replace home-grown CTL IO allocator with UMA.
>   
>   Old allocator created significant lock congestion protecting its lists
>   of preallocated I/Os, while UMA provides much better SMP scalability.
>   The downside of UMA is lack of reliable preallocation, that could guarantee
>   successful allocation in non-sleepable environments.  But careful code
>   review shown, that only CAM target frontend really has that requirement.
>   Fix that making that frontend preallocate and statically bind CTL I/O for
>   every ATIO/INOT it preallocates any way.  That allows to avoid allocations
>   in hot I/O path.  Other frontends either may sleep in allocation context
>   or can properly handle allocation errors.
>   
>   On 40-core server with 6 ZVOL-backed LUNs and 7 iSCSI client connections
>   this change increases peak performance from ~700K to >1M IOPS!  Yay! :)

Hell yeah!




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