• Peter Zijlstra's avatar
    timers: split process wide cpu clocks/timers · 4cd4c1b4
    Peter Zijlstra authored
    Change the process wide cpu timers/clocks so that we:
    
     1) don't mess up the kernel with too many threads,
     2) don't have a per-cpu allocation for each process,
     3) have no impact when not used.
    
    In order to accomplish this we're going to split it into two parts:
    
     - clocks; which can take all the time they want since they run
               from user context -- ie. sys_clock_gettime(CLOCK_PROCESS_CPUTIME_ID)
    
     - timers; which need constant time sampling but since they're
               explicity used, the user can pay the overhead.
    
    The clock readout will go back to a full sum of the thread group, while the
    timers will run of a global 'clock' that only runs when needed, so only
    programs that make use of the facility pay the price.
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Reviewed-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    4cd4c1b4
sched_stats.h 10.7 KB