Re: [PATCH 2/3] sched: enforce per-cpu utilization limits onruntime balancing

From: Peter Zijlstra
Date: Thu Feb 25 2010 - 16:44:14 EST


On Tue, 2010-02-23 at 19:56 +0100, Fabio Checconi wrote:
> +static inline void double_spin_lock(raw_spinlock_t *lock1,
> + raw_spinlock_t *lock2)
> + __acquires(lock1)
> + __acquires(lock2)
> +{
> + if (lock1 < lock2) {
> + raw_spin_lock(lock1);
> + raw_spin_lock_nested(lock2, SINGLE_DEPTH_NESTING);
> + } else {
> + raw_spin_lock(lock2);
> + raw_spin_lock_nested(lock1, SINGLE_DEPTH_NESTING);
> + }
> +}
> +
> +static inline void double_spin_unlock(raw_spinlock_t *lock1,
> + raw_spinlock_t *lock2)
> + __releases(lock1)
> + __releases(lock2)
> +{
> + raw_spin_unlock(lock1);
> + lock_set_subclass(&lock2->dep_map, 0, _RET_IP_);
> + raw_spin_unlock(lock2);
> +}

If you release both there is no need to re-set the subclass.

--
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/