• James Hogan's avatar
    MIPS: cevt-r4k: Dynamically calculate min_delta_ns · 1fa40555
    James Hogan authored
    Calculate the MIPS clockevent device's min_delta_ns dynamically based on
    the time it takes to perform the mips_next_event() sequence.
    
    Virtualisation in particular makes the current fixed min_delta of 0x300
    inappropriate under some circumstances, as the CP0_Count and CP0_Compare
    registers may be being emulated by the hypervisor, and the frequency may
    not correspond directly to the CPU frequency.
    
    We actually use twice the median of multiple 75th percentiles of
    multiple measurements of how long the mips_next_event() sequence takes,
    in order to fairly efficiently eliminate outliers due to unexpected
    hypervisor latency (which would need handling with retries when it
    occurs during normal operation anyway).
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/13176/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    1fa40555
cevt-r4k.c 7.66 KB