Re: [PATCH 0/4] MCS spinlocks: Cancellable MCS spinlock rework

From: Peter Zijlstra
Date: Mon Jul 07 2014 - 15:07:22 EST


On Mon, Jul 07, 2014 at 11:50:15AM -0700, Jason Low wrote:
> The main purpose of this patchset is to reduce the size of the
> cancellable MCS spinlock and reduce the overhead of rwsem
> (currently the largest lock in the kernel).
>
> The overhead of the cancellable MCS lock is a pointer to a per-cpu node
> structure which requires 64 bits on 64 bit systems. Instead of a pointer
> to the per-cpu node, we can instead store the CPU # corresponding to the
> node in atomic_t. This reduces the overhead by 32 bits on 64 bit systems.
>
> This then opens the opportunity to reduce the size of the rw_semaphore
> structure (one of the current users of this MCS lock) by moving around some
> of its fields. Due to padding, we would reduce the size of that structure
> by 64 bits (on 64 bit systems). This makes it more in line with the size
> of the mutex structure.

Dave Chinner was very interested in this..

Attachment: pgpcPuXnGyHY6.pgp
Description: PGP signature