On Wed, Jul 02, 2014 at 09:39:18PM -0700, Jason Low wrote: > And due to padding, the additional modification below reduces the > size of struct rw_semaphore by 64 bits on my machine :) > > > struct rw_semaphore { > long count; > - raw_spinlock_t wait_lock; > struct list_head wait_list; > + raw_spinlock_t wait_lock; > #ifdef CONFIG_SMP > + struct optimistic_spin_tail osq; /* spinner MCS lock */ > /* > * Write owner. Used as a speculative check to see > * if the owner is running on the cpu. > */ > struct task_struct *owner; > - struct optimistic_spin_tail osq; /* spinner MCS lock */ > #endif > #ifdef CONFIG_DEBUG_LOCK_ALLOC > struct lockdep_map dep_map; > Right, that might make sense.