Messages in this thread | | | Date | Mon, 22 Jun 2009 13:51:02 +0200 | From | Ingo Molnar <> | Subject | Re: I.3 - Multiplexing and system-wide |
| |
> 3/ Multiplexing and system-wide > > Multiplexing is time-based and it is hooked into the timer tick. > At every tick, the kernel tries to schedule another set of event > groups. > > In tickless kernels if a CPU is idle, no timer tick is generated, > therefore no multiplexing occurs. This is incorrect. It's not > because the CPU is idle, that there aren't any interesting PMU > events to measure. Parts of the CPU may still be active, e.g., > caches and buses. And thus, it is expected that multiplexing still > happens. > > You need to hook up the timer source for multiplexing to something > else which is not affected by tickless. You cannot simply disable > tickless during a measurement because you would not be measuring > the system as it actually behaves.
There is only a very small difference between inhibiting nohz and waking up the machine using timers on the same interval.
Using the scheduler tick to round-robin counters is a first-level approximation we use: it in essence corresponds to multiplexing counters along a cycle cost metric. If there's sufficient interest we can drive the round-robining by the PMU itself: this makes it HZ and dynticks invariant.
The simplified multiplexing we offer now certainly works well enough in practice - if there's interest we can expand it.
| |