Thread (48 messages) 48 messages, 9 authors, 2013-10-23

Re: [PATCH V2 Resend 0/4] Create sched_select_cpu() and use it for workqueues and timers

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2012-11-26 19:18:01
Also in: lkml

On Mon, 2012-11-26 at 11:03 -0800, Paul E. McKenney wrote:
On Mon, Nov 26, 2012 at 12:35:52PM -0500, Steven Rostedt wrote:
quoted
On Mon, 2012-11-26 at 09:03 -0800, Paul E. McKenney wrote:

quoted
If I understand correctly (though also suffering turkey OD), the idea is
to offload work to more energy-efficient CPUs.
This is determined by a CPU that isn't running the idle task? Is it
because a CPU that just woke up may be running at a lower freq, and thus
not as efficient? But pushing off to another CPU may cause cache misses
as well. Wouldn't that also be a factor in efficiencies, if a CPU is
stalled waiting for memory to be loaded?
Two different microarchitectures -- same instruction set (at user level,
anyway), but different power/performance characteristics.  One set is
optimized for performance, the other for energy efficiency.  For example,
ARM's big.LITTLE architecture.
But I don't see anything in the patch set that guarantees that we will
be moving something off to one of the "big" cores. The only heuristic
that is used is if the CPU is idle or not. In fact, if the big core was
idle we may be pushing work off to a "LITTLE" CPU.

Again, work is only run on the CPU it was queued on (which this patch
set is trying to change). Thus, only work that would be queued on a
LITTLE CPU is by something that ran on that CPU.

I'm still having a bit of trouble understanding where the benefit comes
from.

-- Steve
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help