public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 0/2] sched: Allow interrupts to be enabled in idle balance
@ 2012-12-22  0:30 Steven Rostedt
  2012-12-22  0:30 ` [RFC][PATCH 1/2] sched: Move idle_balance() to post_schedule Steven Rostedt
  2012-12-22  0:30 ` [RFC][PATCH 2/2] sched: Enable interrupts in idle_balance() Steven Rostedt
  0 siblings, 2 replies; 5+ messages in thread
From: Steven Rostedt @ 2012-12-22  0:30 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ingo Molnar, Andrew Morton, Thomas Gleixner, Peter Zijlstra,
	Frederic Weisbecker, Clark Williams

The idle_balance() code is treated special in the scheduler for
no real apparent reason. There's an unlikely check for !rq->nr_running
in the hot path of the scheduler, for just the idle load balancing.

As sched classes can have their own post schedule routine, and the
idle task has its own scheduler class, we can move the idle_balance()
into the idle task's post schedule routine, and out of the hot path
of the scheduler (no sepecial check).

An added benefit for doing this is that this enables us to enable
interrupts in the idle balance code. Shrinking the time interrupts
are disabled while doing load balancing.

These patches have been thoroughly tested (on a 40 core box as well
as a 4 core and UP config), and are prime for inclusion (for 3.9).
But I'm posted them now as an RFC for comments.

Thanks!

-- Steve


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-01-05 14:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-22  0:30 [RFC][PATCH 0/2] sched: Allow interrupts to be enabled in idle balance Steven Rostedt
2012-12-22  0:30 ` [RFC][PATCH 1/2] sched: Move idle_balance() to post_schedule Steven Rostedt
2012-12-22  1:00   ` Steven Rostedt
2013-01-05 14:14   ` Frederic Weisbecker
2012-12-22  0:30 ` [RFC][PATCH 2/2] sched: Enable interrupts in idle_balance() Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox