mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
sched/psi: Delete the 'update_total' function parameter from update_triggers()
The 'update_total' parameter of update_triggers() is always true after the
previous commit:
80cc1d1d5e
("sched/psi: Avoid updating PSI triggers and ->rtpoll_total when there are no state changes")
If the 'changed_states & group->rtpoll_states' condition is true,
'new_stall' in update_triggers() will be true, and then 'update_total'
should also be true.
So update_total is redundant - remove it.
[ mingo: Changelog updates ]
Signed-off-by: Yang Yang <yang.yang29@zte.com.cn>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Peter Ziljstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/202310101645437859599@zte.com.cn
This commit is contained in:
parent
80cc1d1d5e
commit
3657680f38
@ -434,14 +434,13 @@ static u64 window_update(struct psi_window *win, u64 now, u64 value)
|
||||
return growth;
|
||||
}
|
||||
|
||||
static void update_triggers(struct psi_group *group, u64 now, bool *update_total,
|
||||
static void update_triggers(struct psi_group *group, u64 now,
|
||||
enum psi_aggregators aggregator)
|
||||
{
|
||||
struct psi_trigger *t;
|
||||
u64 *total = group->total[aggregator];
|
||||
struct list_head *triggers;
|
||||
u64 *aggregator_total;
|
||||
*update_total = false;
|
||||
|
||||
if (aggregator == PSI_AVGS) {
|
||||
triggers = &group->avg_triggers;
|
||||
@ -471,14 +470,6 @@ static void update_triggers(struct psi_group *group, u64 now, bool *update_total
|
||||
* events without dropping any).
|
||||
*/
|
||||
if (new_stall) {
|
||||
/*
|
||||
* Multiple triggers might be looking at the same state,
|
||||
* remember to update group->polling_total[] once we've
|
||||
* been through all of them. Also remember to extend the
|
||||
* polling time if we see new stall activity.
|
||||
*/
|
||||
*update_total = true;
|
||||
|
||||
/* Calculate growth since last update */
|
||||
growth = window_update(&t->win, now, total[t->state]);
|
||||
if (!t->pending_event) {
|
||||
@ -563,7 +554,6 @@ static void psi_avgs_work(struct work_struct *work)
|
||||
struct delayed_work *dwork;
|
||||
struct psi_group *group;
|
||||
u32 changed_states;
|
||||
bool update_total;
|
||||
u64 now;
|
||||
|
||||
dwork = to_delayed_work(work);
|
||||
@ -582,7 +572,7 @@ static void psi_avgs_work(struct work_struct *work)
|
||||
* go - see calc_avgs() and missed_periods.
|
||||
*/
|
||||
if (now >= group->avg_next_update) {
|
||||
update_triggers(group, now, &update_total, PSI_AVGS);
|
||||
update_triggers(group, now, PSI_AVGS);
|
||||
group->avg_next_update = update_averages(group, now);
|
||||
}
|
||||
|
||||
@ -638,7 +628,6 @@ static void psi_rtpoll_work(struct psi_group *group)
|
||||
{
|
||||
bool force_reschedule = false;
|
||||
u32 changed_states;
|
||||
bool update_total;
|
||||
u64 now;
|
||||
|
||||
mutex_lock(&group->rtpoll_trigger_lock);
|
||||
@ -705,7 +694,7 @@ static void psi_rtpoll_work(struct psi_group *group)
|
||||
|
||||
if (now >= group->rtpoll_next_update) {
|
||||
if (changed_states & group->rtpoll_states) {
|
||||
update_triggers(group, now, &update_total, PSI_POLL);
|
||||
update_triggers(group, now, PSI_POLL);
|
||||
memcpy(group->rtpoll_total, group->total[PSI_POLL],
|
||||
sizeof(group->rtpoll_total));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user