Description of problem:
Adaptive mutexes are used to protect critical/shared data items that are held for short periods.
It provides a balance between spin locks and traditional mutex.
We have observed after use adaptive mutex in rpcsvc_program_register got some improvement.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
REVIEW: https://review.gluster.org/21883 (rpc: Use adaptive mutex in rpcsvc_program_register) posted (#1) for review on master by MOHIT AGRAWAL
Is there upstream developer documentation on when they should be used and how?
REVIEW: https://review.gluster.org/21883 (rpc: Use adaptive mutex in rpcsvc_program_register) posted (#3) for review on master by Raghavendra G
(In reply to Yaniv Kaul from comment #2)
> Is there upstream developer documentation on when they should be used and
Currently I am not aware of one. Even with  there was marginal regression due to . Thinking it was due to the mutex controlling access to the request queue, I thought of using spinlocks as I was expecting critical section to be very small (just adding/removing an element to list). However, pthread conditional variables couldn't be used with spinlocks and hence as a second option we tried adaptive mutex. After running perf benchmarks (small file workload ) indeed showed adaptive mutex was helpful.
I referred to , which led to 
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-6.0, please open a new bug report.
glusterfs-6.0 has been announced on the Gluster mailinglists , packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist  and the update infrastructure for your distribution.