Re: [Patch] Idle balancer: cache align nohz structure to improveidle load balancing scalability

From: Srivatsa Vaddagiri
Date: Wed Nov 02 2011 - 09:54:57 EST


* Suresh Siddha <suresh.b.siddha@xxxxxxxxx> [2011-11-01 16:52:38]:

> + /*
> + * We were recently in tickless idle mode. We will do the delayed
> + * update of busy mode now (first busy tick after returning from idle).
> + */
> + if (unlikely(rq->tick_stopped)) {
> + cpumask_clear_cpu(cpu, nohz.idle_cpus_mask);
> +
> + if (cpumask_bits(nohz.idle_cpus_mask)[BIT_WORD(cpu)] == 0 &&
> + cpumask_empty(nohz.idle_cpus_mask))
> + clear_bit(NOHZ_NEED_BALANCING, &nohz.bits);

Can't this clear_bit race with set_bit() in select_nohz_load_balancer()?

CPU0 CPU1

cpumask_clear_cpu()
if ( ...)
cpumask_set_cpu();
set_bit();

clear_bit();

?

- vatsa

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