linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: <yang.yang29@zte.com.cn>
To: <mingo@kernel.org>, <surenb@google.com>, <peterz@infradead.org>,
	<hannes@cmpxchg.org>
Cc: <mingo@redhat.com>, <linux-kernel@vger.kernel.org>,
	<juri.lelli@redhat.com>
Subject: [PATCH linux-next v3 0/4] sched/psi: Optimize the process of updating triggers and rtpoll_total
Date: Tue, 10 Oct 2023 16:31:04 +0800 (CST)	[thread overview]
Message-ID: <202310101631048535793@zte.com.cn> (raw)
In-Reply-To: <ZST/WggW4hSVs9d4@gmail.com>

From: Yang Yang <yang.yang29@zte.com.cn>

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 have not changed. This will help to slightly reduce
unnecessary computations of psi.

There are also some minor related optimizations, please see below.

Update_triggers() always return now + group->rtpoll_min_period, and the
return value is only used by psi_rtpoll_work(), so change update_triggers()
to a void function, let group->rtpoll_next_update = now +
group->rtpoll_min_period directly.

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.

The parameter update_total in update_triggers() is useless now. Since if
changed_states & group->rtpoll_states is true, new_stall in update_triggers()
will be true, then update_total should also be true. We have no need for
update_total to help judgment whether to update rtpoll_total, so delete
update_total.

Change log
----------
v2->v3:
----------
(1) revert #1 patch to the same as:
  e03dc9fa0663 ("sched/psi: Change update_triggers() to a 'void' function")
(2) remake the remaining patches on top of that #1 patch
----------
(1) the line number of group->rtpoll_next_update in patch 1 remain unchanged
(2) split patch 3 from patch 2

Yang Yang (4):
sched/psi: Change update_triggers() to a 'void' function
sched/psi: Avoid update triggers and rtpoll_total when it is unnecessary
sched/psi: Update rtpoll_next_update after update triggers and rtpoll_total
sched/psi: Delete the function parameter update_total of update_triggers()

kernel/sched/psi.c | 23 ++++++-----------------
1 file changed, 6 insertions(+), 17 deletions(-)

--
2.25.1

  reply	other threads:[~2023-10-10  8:31 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-13 12:44 [PATCH linux-next] sched/psi: Avoid update triggers and rtpoll_total when it is unnecessary yang.yang29
2023-09-13 23:01 ` Suren Baghdasaryan
2023-09-14  2:02   ` yang.yang29
2023-09-14  5:53     ` yang.yang29
2023-09-14  9:10       ` yang.yang29
2023-09-27  0:14         ` Suren Baghdasaryan
2023-09-27  1:56           ` yang.yang29
2023-09-30 22:32         ` Suren Baghdasaryan
2023-10-07  6:21           ` [PATCH linux-next v2] " yang.yang29
2023-10-09 10:49             ` Ingo Molnar
2023-10-09 12:19               ` [PATCH linux-next 0/3] sched/psi: Optimize the process of updating triggers and rtpoll_total yang.yang29
2023-10-09 12:24               ` [PATCH linux-next 1/3] sched/psi: Change update_triggers() to a void function yang.yang29
2023-10-09 12:48                 ` Ingo Molnar
2023-10-09 12:59                 ` [tip: sched/core] sched/psi: Change update_triggers() to a 'void' function tip-bot2 for Yang Yang
2023-10-09 12:30               ` [PATCH linux-next 2/3] sched/psi: Avoid update triggers and rtpoll_total when it is unnecessary yang.yang29
2023-10-09 12:52                 ` Ingo Molnar
2023-10-09 17:42                   ` Suren Baghdasaryan
2023-10-10  2:12                     ` yang.yang29
2023-10-10  3:05                     ` [PATCH linux-next v2 0/4] sched/psi: Optimize the process of updating triggers and rtpoll_total yang.yang29
2023-10-10  3:09                     ` [PATCH linux-next v2 1/4] sched/psi: Change update_triggers() to a 'void' function yang.yang29
2023-10-10  7:38                       ` Ingo Molnar
2023-10-10  8:31                         ` yang.yang29 [this message]
2023-10-10  8:36                         ` [PATCH linux-next v3 " yang.yang29
2023-10-19 16:01                           ` Suren Baghdasaryan
2023-10-10  8:41                         ` [PATCH linux-next v3 2/4] sched/psi: Avoid update triggers and rtpoll_total when it is unnecessary yang.yang29
2023-10-11 21:15                           ` Ingo Molnar
2023-10-12  2:13                             ` yang.yang29
2023-10-19 16:04                             ` Suren Baghdasaryan
2023-10-11 21:20                           ` [tip: sched/core] sched/psi: Avoid updating PSI triggers and ->rtpoll_total when there are no state changes tip-bot2 for Yang Yang
2023-10-10  8:42                         ` [PATCH linux-next v3 3/4] sched/psi: update rtpoll_next_update after update triggers and rtpoll_total yang.yang29
2023-10-19 16:07                           ` Suren Baghdasaryan
2023-10-10  8:45                         ` [PATCH linux-next v3 4/4] sched/psi: Delete the function parameter update_total of update_triggers() yang.yang29
2023-10-11 21:20                           ` [tip: sched/core] sched/psi: Delete the 'update_total' function parameter from update_triggers() tip-bot2 for Yang Yang
2023-10-19 16:09                           ` [PATCH linux-next v3 4/4] sched/psi: Delete the function parameter update_total of update_triggers() Suren Baghdasaryan
2023-10-10  3:20                     ` [PATCH linux-next v2 2/4] sched/psi: Avoid update triggers and rtpoll_total when it is unnecessary yang.yang29
2023-10-10  3:24                     ` [PATCH linux-next v2 3/4] sched/psi: update rtpoll_next_update after update triggers and rtpoll_total yang.yang29
2023-10-10  3:28                     ` [PATCH linux-next v2 4/4] sched/psi: Delete the function parameter update_total of update_triggers() yang.yang29
2023-10-09 12:37               ` [PATCH linux-next 3/3] " yang.yang29

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202310101631048535793@zte.com.cn \
    --to=yang.yang29@zte.com.cn \
    --cc=hannes@cmpxchg.org \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=surenb@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).