Re: [RFC][PATCH tip/sched/core] sched/rt: Simplify the IPI rt balancing logic

From: Peter Zijlstra
Date: Mon Apr 24 2017 - 04:57:18 EST


On Fri, Apr 21, 2017 at 10:49:29PM -0400, Steven Rostedt wrote:
> +#ifdef HAVE_RT_PUSH_IPI
> + /*
> + * For IPI pull requests, loop across the rto_mask.
> + */
> + struct irq_work rto_push_work;
> + raw_spinlock_t rto_lock;
> + /* These atomics are updated outside of a lock */
> + atomic_t rto_loop_next;
> + atomic_t rto_loop_start;
> + /* These are only updated and read withn rto_lock */
> + int rto_loop;
> + int rto_cpu;
> +#endif

Don't you think it would make sense to place the rto_lock near the
variables it protects? And if those atomics are supposed to increase
performance, do they want to share the same cacheline with the lock?