• Peter Zijlstra's avatar
    perf/core: Rewrite event timekeeping · 0d3d73aa
    Peter Zijlstra authored
    The current even timekeeping, which computes enabled and running
    times, uses 3 distinct timestamps to reflect the various event states:
    OFF (stopped), INACTIVE (enabled) and ACTIVE (running).
    
    Furthermore, the update rules are such that even INACTIVE events need
    their timestamps updated. This is undesirable because we'd like to not
    touch INACTIVE events if at all possible, this makes event scheduling
    (much) more expensive than needed.
    
    Rewrite the timekeeping to directly use event->state, this greatly
    simplifies the code and results in only having to update things when
    we change state, or an up-to-date value is requested (read).
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    0d3d73aa
core.c 265 KB