Messages in this thread | | | Subject | Re: [PATCH/RFC] perfcounters: record time running and time enabled for each counter | From | Peter Zijlstra <> | Date | Fri, 20 Mar 2009 15:50:31 +0100 |
| |
On Fri, 2009-03-20 at 23:07 +1100, Paul Mackerras wrote: > Impact: new functionality > > Currently, if there are more counters enabled than can fit on the CPU, > the kernel will multiplex the counters on to the hardware using > round-robin scheduling. That isn't too bad for sampling counters, but > for counting counters it means that the value read from a counter > represents some unknown fraction of the true count of events that > occurred while the counter was enabled. > > This remedies the situation by keeping track of how long each counter > is enabled for, and how long it is actually on the cpu and counting > events. These times are recorded in nanoseconds using the task clock > for per-task counters and the cpu clock for per-cpu counters.
Can't we do this by simply adding some software counters? A task local to each group and a task local on its own.
Since the solo task local will always be scheduled, you can get the sampling fraction by comparing the group task local one to the solo one.
| |