[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <57BCAF72.7020904@hpe.com>
Date: Tue, 23 Aug 2016 16:17:54 -0400
From: Waiman Long <waiman.long@....com>
To: Peter Zijlstra <peterz@...radead.org>
CC: Linus Torvalds <torvalds@...ux-foundation.org>,
Jason Low <jason.low2@....com>,
Ding Tianhong <dingtianhong@...wei.com>,
"Thomas Gleixner" <tglx@...utronix.de>,
Will Deacon <Will.Deacon@....com>,
Ingo Molnar <mingo@...hat.com>,
Imre Deak <imre.deak@...el.com>,
"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>,
Davidlohr Bueso <dave@...olabs.net>,
"Tim Chen" <tim.c.chen@...ux.intel.com>,
Terry Rudd <terry.rudd@....com>,
"Paul E. McKenney" <paulmck@...ibm.com>,
Jason Low <jason.low2@...com>
Subject: Re: [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner
On 08/23/2016 08:46 AM, Peter Zijlstra wrote:
> /*
> * Simple, straightforward mutexes with strict semantics:
> @@ -48,13 +49,9 @@
> * locks and tasks (and only those tasks)
> */
> struct mutex {
> - /* 1: unlocked, 0: locked, negative: locked, possible waiters */
> - atomic_t count;
> + atomic_long_t owner;
> spinlock_t wait_lock;
> struct list_head wait_list;
> -#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_MUTEX_SPIN_ON_OWNER)
> - struct task_struct *owner;
> -#endif
> #ifdef CONFIG_MUTEX_SPIN_ON_OWNER
> struct optimistic_spin_queue osq; /* Spinner MCS lock */
> #endif
I think you should put the wait_lock and osq next to each other to save
8 bytes in space on 64-bit machines.
Cheers,
Longman
Powered by blists - more mailing lists