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