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>