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: <20101222204100.GE1739@nowhere>
Date:	Wed, 22 Dec 2010 21:41:03 +0100
From:	Frederic Weisbecker <fweisbec@...il.com>
To:	Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc:	Avi Kivity <avi@...hat.com>, LKML <linux-kernel@...r.kernel.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
	Ingo Molnar <mingo@...e.hu>,
	Steven Rostedt <rostedt@...dmis.org>,
	Lai Jiangshan <laijs@...fujitsu.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Anton Blanchard <anton@....ibm.com>,
	Tim Pepper <lnxninja@...ux.vnet.ibm.com>
Subject: Re: [RFC PATCH 15/15] nohz_task: Procfs interface

On Wed, Dec 22, 2010 at 10:51:44AM +0100, Peter Zijlstra wrote:
> On Wed, 2010-12-22 at 11:22 +0200, Avi Kivity wrote:
> > > Makes sense. And that integrates well with Peter's idea of creating a
> > > new cpuset attribute for the nohz tasks.
> > >
> > > But instead of making this detection from the scheduler, I think this
> > > should be done from the tick: if there is only one task running, set
> > > it the TF flag.
> > >
> > > But anyway, that's an optimisation. We can start with setting that flag
> > > on every task in that cpuset.
> > 
> > So long as we start without the new knob. 
> 
> Right, so one of the things we can do is let the tick disable itself
> when it finds there is no pending work left and set the TIF bit when
> needed.

Right.

Now I think about potential races. If a tick happens between the end of
the syscall path and the resume to userspace, it can set the TIF flag
but too late. So the task resumes userspace without beeing in an
extended QS.

No big deal though, it's easy to fixup.

Another possible race: a task runs alone with the flag. A new task gets enqueued
so we send the IPI. When the CPU receives the IPI, is "current" still the task
that was previously in nohz mode or the freshly enqueued one? When it's the
second case it becomes hard to clear the flag.

Probably I'll need to hook into the enqueue_task() path to fixup that.

> We should then also rate-limit things so as not to
> enable/disable the tick too often, but that would potentially allow us
> to do away with all knobs.

Right. Before I posted that, I actually had a minimum duration threshold of the tick.
Like, even if we can stop the tick, just wait x more ns, x beeing an abritrary constant.
But that was actually complicating the thing and I wasn't sure there was a real gain.
--
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