On Sat, Aug 31, 2024 at 07:43:15AM +0000, Luo Gengkun wrote: > kernel/events/core.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/kernel/events/core.c b/kernel/events/core.c > index c973e3c11e03..a9395bbfd4aa 100644 > --- a/kernel/events/core.c > +++ b/kernel/events/core.c > @@ -4092,7 +4092,11 @@ static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count, bo > period = perf_calculate_period(event, nsec, count); > > delta = (s64)(period - hwc->sample_period); > - delta = (delta + 7) / 8; /* low pass filter */ > + if (delta >= 0) > + delta += 7; > + else > + delta -= 7; > + delta /= 8; /* low pass filter */ > > sample_period = hwc->sample_period + delta; > OK, that makes sense, Thanks!