Messages in this thread | | | Subject | Re: [tip:x86/mm] x86/pat: Avoid contention on cpa_lock if possible | From | Peter Zijlstra <> | Date | Wed, 06 Jun 2012 19:24:03 +0200 |
| |
On Wed, 2012-06-06 at 09:18 -0700, tip-bot for Shai Fultheim wrote:
> [ I absolutely hate these locking patterns ... yet I have no better idea. Maybe the gents on Cc: ... ] > Signed-off-by: Ingo Molnar <mingo@kernel.org>
Oh yuck, this is vile..
static struct static_key scale_mp_trainwreck = STATIC_KEY_INIT_FALSE;
static DEFINE_SPINLOCK(_cpa_lock);
static inline void cpa_lock(void) { if (static_key_false(&scale_mp_trainwreck)) return;
spin_lock(&_cpa_lock); }
static inline void cpa_unlock(void) { if (static_key_false(&scale_mp_trainwreck)) return;
spin_lock(&_cpa_lock); }
And then use cpa_{,un}lock(), and the scale-mp guys can static_key_slow_inc(&scale_mp_trainwreck).
[ and yes I hate those jump_label names ... but I'm not wanting to go through another round of bike-shed painting. ]
| |