The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* round-robining per-cpu counters
@ 2009-05-05  3:58 Paul Mackerras
  2009-05-05  6:40 ` Ingo Molnar
  0 siblings, 1 reply; 4+ messages in thread
From: Paul Mackerras @ 2009-05-05  3:58 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Robert Richter, Peter Zijlstra, Thomas Gleixner, linux-kernel

It used to be, and as far as I can see still is, the case that per-cpu
counters take priority over per-task counters by virtue of being
scheduled in first.  That is, if you have N hardware counters and >= N
per-cpu counters, then no per-task counters will ever get scheduled
onto the PMU.

That being the case, I don't see what the point of having the
perf_reserved_percpu variable is.  It doesn't do anything except set
cpuctx->max_pertask, which isn't actually used anywhere.  In any case
with the current counter scheduling system there's no need to
"reserve" hardware counters for use by per-cpu counters since any new
per-cpu counters will just bump existing per-task counters off - if
not immediately then the next time that perf_counter_task_tick gets
called.

What was the intended meaning of perf_reserved_percpu?  I presume it
was that there would always be that many hardware counters available
for per-cpu counters regardless of how many per-task counters there
are.  But that doesn't answer the complementary question - how many
hardware counters can we rely on being available for per-task
counters?  At the moment the answer is 0, but I don't think that is a
good answer.

Does anyone have any good ideas about what the scheduling policy
should be?

Paul.

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

end of thread, other threads:[~2009-05-05 13:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-05  3:58 round-robining per-cpu counters Paul Mackerras
2009-05-05  6:40 ` Ingo Molnar
2009-05-05 11:57   ` Paul Mackerras
2009-05-05 13:49     ` Ingo Molnar

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