Re: [PATCH linux-next 2/3] sched/psi: Avoid update triggers and rtpoll_total when it is unnecessary

From: Ingo Molnar
Date: Mon Oct 09 2023 - 08:52:12 EST



* yang.yang29@xxxxxxxxxx <yang.yang29@xxxxxxxxxx> wrote:

> From: Yang Yang <yang.yang29@xxxxxxxxxx>
>
> When psimon wakes up and there are no state changes for rtpoll_states,
> it's unnecessary to update triggers and rtpoll_total because the pressures
> being monitored by user had not changed. This will help to slightly reduce
> unnecessary computations of psi.
>
> And update group->rtpoll_next_update after called update_triggers() and
> update rtpoll_total. This will prevent bugs if update_triggers() uses
> group->rtpoll_next_update in the future, and it makes more sense
> to set the next update time after we finished the current update.

> if (now >= group->rtpoll_next_update) {
> - update_triggers(group, now, &update_total, PSI_POLL);
> - group->rtpoll_next_update = now + group->rtpoll_min_period;
> - if (update_total)
> + if (changed_states & group->rtpoll_states) {
> + update_triggers(group, now, &update_total, PSI_POLL);
> memcpy(group->rtpoll_total, group->total[PSI_POLL],
> sizeof(group->rtpoll_total));
> + }
> + group->rtpoll_next_update = now + group->rtpoll_min_period;

So please also split out the second change into a separate patch as well,
as it's an unrelated patch to the state-change optimization.

We have a "one conceptual change per patch" rule for most things.

Thanks,

Ingo