• Yazen Ghannam's avatar
    tools/power turbostat: Make interval calculation per thread to reduce jitter · d4794f25
    Yazen Ghannam authored
    Turbostat currently normalizes TSC and other values by dividing by an
    interval. This interval is the delta between the start of one global
    (all counters on all CPUs) sampling and the start of another. However,
    this introduces a lot of jitter into the data.
    
    In order to reduce jitter, the interval calculation should be based on
    timestamps taken per thread and close to the start of the thread's
    sampling.
    
    Define a per thread time value to hold the delta between samples taken
    on the thread.
    
    Use the timestamp taken at the beginning of sampling to calculate the
    delta.
    
    Move the thread's beginning timestamp to after the CPU migration to
    avoid jitter due to the migration.
    
    Use the global time delta for the average time delta.
    Signed-off-by: default avatarYazen Ghannam <yazen.ghannam@amd.com>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    d4794f25
turbostat.c 149 KB