lkml.org 
[lkml]   [2011]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [Patch] Idle balancer: cache align nohz structure to improve idle load balancing scalability
From
Date
On Wed, 2011-11-02 at 06:54 -0700, Srivatsa Vaddagiri wrote:
> * Suresh Siddha <suresh.b.siddha@intel.com> [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();
>
> ?

Yes. All I want is a quick way of getting the
cpumask_weight(nohz.idle_cpus_mask) so that the busy cpu need not spend
much time to see if there is an idle cpu that needs idle load balancing.
Let me see if there is any simple way or else we need nohz.nr_idle_cpus

thanks,
suresh



\
 
 \ /
  Last update: 2011-11-02 16:17    [W:0.054 / U:2.932 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site