Re: [PATCH-tip v2 0/2] locking/qrwlock: Improve qrwlock performance

From: Waiman Long
Date: Thu Jul 09 2015 - 21:16:42 EST


On 07/09/2015 06:04 PM, Davidlohr Bueso wrote:
On Thu, 2015-07-09 at 12:32 -0400, Waiman Long wrote:
With this patch series in place, we can start converting some spinlocks
back to rwlocks where it makes sense and the lock size increase isn't
a concern.
Nice, have any users to convert? I can think of a few I've encountered,
but there must be quite a few, specially those nasty global spinlocks
where nobody cares about the size.

o hugetlb reservation map lock: Updating hugepage ranges does a two step
read/update for the reservation map. The first step could now be done
concurrently if converted.

o The infamous swap_lock; although I doubt any of the serious offenders
(ie zswap callbacks) would benefit much for anything
beyond /proc/meminfo and related.

o async cookie sync wait_event, battery/ata bootup(?).

etc. etc. Obviously the fairness factor is also something to consider.

Yes, I saw a couple of global spinlocks that can be converted to rwlocks. The read lock can be used for lookup, whereas the write lock is used for modification. Doing so will enable parallel lookups. As the qrwlock is almost fair compared with the old implementation, it removes a big roadblock for the conversion.

Cheers,
Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/