All of lore.kernel.org
 help / color / mirror / Atom feed
From: <yang.yang29@zte.com.cn>
To: <surenb@google.com>
Cc: <hannes@cmpxchg.org>, <mingo@redhat.com>,
	<linux-kernel@vger.kernel.org>, <juri.lelli@redhat.com>
Subject: Re: [PATCH linux-next] sched/psi: Avoid update triggers and rtpoll_total when it is unnecessary
Date: Thu, 14 Sep 2023 10:02:03 +0800 (CST)	[thread overview]
Message-ID: <202309141002037888418@zte.com.cn> (raw)
In-Reply-To: <CAJuCfpF_gSdfk_csny-6p661gfGy41w0V2QwoCSY02KdeXMLEA@mail.gmail.com>

>  I don't think that's your intention here, it is?
It's an omission, rtpoll_next_update should be update, thanks
for your reviewing. I did a simple test and did not see delay,
maybe it is other reason.

And I read update_triggers() again, it always return 
now + group->rtpoll_min_period, and this return
value is only used by psi_rtpoll_work(). So I think
there is no need for update_triggers() to return
value. So what about this version see below:

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

diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 81fca77397f6..b6b8af2cf311 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -434,7 +434,7 @@ static u64 window_update(struct psi_window *win, u64 now, u64 value)
 	return growth;
 }

-static u64 update_triggers(struct psi_group *group, u64 now, bool *update_total,
+static void update_triggers(struct psi_group *group, u64 now, bool *update_total,
 						   enum psi_aggregators aggregator)
 {
 	struct psi_trigger *t;
@@ -499,8 +499,6 @@ static u64 update_triggers(struct psi_group *group, u64 now, bool *update_total,
 		/* Reset threshold breach flag once event got generated */
 		t->pending_event = false;
 	}
-
-	return now + group->rtpoll_min_period;
 }

 static u64 update_averages(struct psi_group *group, u64 now)
@@ -699,10 +697,11 @@ static void psi_rtpoll_work(struct psi_group *group)
 	if (now > group->rtpoll_until) {
 		group->rtpoll_next_update = ULLONG_MAX;
 		goto out;
-	}
+	} else
+		group->rtpoll_next_update = now + group->rtpoll_min_period;

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

  reply	other threads:[~2023-09-14  2:07 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 [this message]
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                         ` [PATCH linux-next v3 0/4] sched/psi: Optimize the process of updating triggers and rtpoll_total yang.yang29
2023-10-10  8:36                         ` [PATCH linux-next v3 1/4] sched/psi: Change update_triggers() to a 'void' function 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=202309141002037888418@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@redhat.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.