lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1322524749.21329.70.camel@sbsiddha-desk.sc.intel.com>
Date:	Mon, 28 Nov 2011 15:59:09 -0800
From:	Suresh Siddha <suresh.b.siddha@...el.com>
To:	Peter Zijlstra <peterz@...radead.org>
Cc:	Ingo Molnar <mingo@...e.hu>, Venki Pallipadi <venki@...gle.com>,
	Srivatsa Vaddagiri <vatsa@...ux.vnet.ibm.com>,
	Mike Galbraith <efault@....de>,
	linux-kernel <linux-kernel@...r.kernel.org>,
	Tim Chen <tim.c.chen@...ux.jf.intel.com>,
	"Shi, Alex" <alex.shi@...el.com>
Subject: Re: [patch 1/6] sched, nohz: introduce nohz_flags in the struct rq

On Thu, 2011-11-24 at 02:24 -0800, Peter Zijlstra wrote:
> On Fri, 2011-11-18 at 15:03 -0800, Suresh Siddha wrote:
> > plain text document attachment (introduce_rq_nohz_flags.patch)
> > Introduce nohz_flags in the struct rq, which will track two flags for now.
> > 
> > NOHZ_TICK_STOPPED will convey the stop tick status that gets set when
> > the tick is stopped and cleared during the first busy tick after the tick
> > is restarted.
> > 
> > NOHZ_BALANCE_KICK will track the need for nohz idle load balance
> > on this rq.
> 
> The changelog is missing the crucial part: Why are we doing this? :-)

We already had nohz_balance_kick in the rq, which was not being updated
atomically. So it is quite possible that two cpu's can simultaneously
kick the idle load balancing cpu. NOHZ_BALANCE_KICK bit of the
nohz_flags will track the need for nohz idle load balance on this rq and
will be updated atomically.

When the rq is ready to run a task when coming out of tickless idle,
tick is restarted and data structures used for nohz idle load balancing
are updated immediately. This will result in too many nohz idle load
balancer status updates, if the rq comes out of tickless for running one
(or very few) short running tasks before going back to tickless idle.
This is resulting in scalability issues especially if there are lot of
logical cpu's that enters and exit idle often. There is no need to
update the nohz idle load balancer data structures for the semi-idle cpu
so often (as the information for the need of the idle load balancing and
who needs to be kicked is needed only at the busy cpu's tick).
NOHZ_TICK_STOPPED in rq's nohz_flags is introduced to keep track of the
tick stopped status that gets set when the tick is stopped. It will be
used to update the nohz idle load balancer data structures during the
first busy tick after the tick is restarted. At this first busy tick
after tickless idle, NOHZ_TICK_STOPPED flag will be reset.

I will include this info in the next update.

thanks,
suresh

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ