On Wed, Jul 27, 2022 at 11:14:05AM +0800, Yu Zhe wrote: > time_is_before_jiffies deals with timer wrapping correctly. Please explain how the current code does not. > > Signed-off-by: Yu Zhe <yuzhe@xxxxxxxxxxxx> > --- > arch/x86/kernel/cpu/aperfmperf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/cpu/aperfmperf.c b/arch/x86/kernel/cpu/aperfmperf.c > index 1f60a2b27936..22e0bac3fffe 100644 > --- a/arch/x86/kernel/cpu/aperfmperf.c > +++ b/arch/x86/kernel/cpu/aperfmperf.c > @@ -423,7 +423,7 @@ unsigned int arch_freq_get_on_cpu(int cpu) > * Bail on invalid count and when the last update was too long ago, > * which covers idle and NOHZ full CPUs. > */ > - if (!mcnt || (jiffies - last) > MAX_SAMPLE_AGE) > + if (!mcnt || time_is_before_jiffies(last + MAX_SAMPLE_AGE)) > goto fallback; > > return div64_u64((cpu_khz * acnt), mcnt); > -- > 2.11.0 >