svn commit: r274962 - head/sys/cam/ctl
Edward Tomasz Napierała
trasz at FreeBSD.org
Mon Nov 24 22:19:17 UTC 2014
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!
More information about the svn-src-all
mailing list