From: Ulf Hansson <ulf.hansson@linaro.org> To: Vincent Guittot <vincent.guittot@linaro.org> Cc: Linux PM <linux-pm@vger.kernel.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Biju Das <biju.das@bp.renesas.com>, Linux ARM <linux-arm-kernel@lists.infradead.org>, Geert Uytterhoeven <geert@linux-m68k.org>, Thara Gopinath <thara.gopinath@linaro.org>, Linux-Renesas <linux-renesas-soc@vger.kernel.org> Subject: Re: [PATCH 2/2] PM-runtime: update time accounting only when enabled Date: Tue, 5 Feb 2019 09:09:54 +0100 [thread overview] Message-ID: <CAPDyKFqNgnvHM0hpgzy-oY+oj0_q72LDybgZJ5r8BugDM97Oqg@mail.gmail.com> (raw) In-Reply-To: <1549297553-17647-3-git-send-email-vincent.guittot@linaro.org> On Mon, 4 Feb 2019 at 17:26, Vincent Guittot <vincent.guittot@linaro.org> wrote: > > Update accounting_timestamp field only when PM runtime is enable > and don't forget to account the last state before disabling it. > > Suggested-by: Ulf Hansson <ulf.hansson@linaro.org> > Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Kind regards Uffe > --- > drivers/base/power/runtime.c | 18 ++++++++++-------- > 1 file changed, 10 insertions(+), 8 deletions(-) > > diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c > index 50740da..ed62cca 100644 > --- a/drivers/base/power/runtime.c > +++ b/drivers/base/power/runtime.c > @@ -66,11 +66,14 @@ static int rpm_suspend(struct device *dev, int rpmflags); > */ > void update_pm_runtime_accounting(struct device *dev) > { > - u64 now = ktime_get_mono_fast_ns(); > - u64 last = dev->power.accounting_timestamp; > - u64 delta; > + u64 now, last, delta; > > - dev->power.accounting_timestamp = now; > + if (dev->power.disable_depth > 0) > + return; > + > + last = dev->power.accounting_timestamp; > + > + dev->power.accounting_timestamp = now = ktime_get_mono_fast_ns(); > > /* > * Because ktime_get_mono_fast_ns() is not monotonic during > @@ -82,9 +85,6 @@ void update_pm_runtime_accounting(struct device *dev) > > delta = now - last; > > - if (dev->power.disable_depth > 0) > - return; > - > if (dev->power.runtime_status == RPM_SUSPENDED) > dev->power.suspended_time += delta; > else > @@ -1298,6 +1298,9 @@ void __pm_runtime_disable(struct device *dev, bool check_resume) > pm_runtime_put_noidle(dev); > } > > + /* Update time accounting before disabling pm runtime */ > + update_pm_runtime_accounting(dev); > + > if (!dev->power.disable_depth++) > __pm_runtime_barrier(dev); > > @@ -1521,7 +1524,6 @@ void pm_runtime_init(struct device *dev) > dev->power.request_pending = false; > dev->power.request = RPM_REQ_NONE; > dev->power.deferred_resume = false; > - dev->power.accounting_timestamp = 0; > INIT_WORK(&dev->power.work, pm_runtime_work); > > dev->power.timer_expires = 0; > -- > 2.7.4 >
WARNING: multiple messages have this Message-ID (diff)
From: Ulf Hansson <ulf.hansson@linaro.org> To: Vincent Guittot <vincent.guittot@linaro.org> Cc: Linux PM <linux-pm@vger.kernel.org>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Thara Gopinath <thara.gopinath@linaro.org>, Biju Das <biju.das@bp.renesas.com>, Linux-Renesas <linux-renesas-soc@vger.kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>, Linux ARM <linux-arm-kernel@lists.infradead.org> Subject: Re: [PATCH 2/2] PM-runtime: update time accounting only when enabled Date: Tue, 5 Feb 2019 09:09:54 +0100 [thread overview] Message-ID: <CAPDyKFqNgnvHM0hpgzy-oY+oj0_q72LDybgZJ5r8BugDM97Oqg@mail.gmail.com> (raw) In-Reply-To: <1549297553-17647-3-git-send-email-vincent.guittot@linaro.org> On Mon, 4 Feb 2019 at 17:26, Vincent Guittot <vincent.guittot@linaro.org> wrote: > > Update accounting_timestamp field only when PM runtime is enable > and don't forget to account the last state before disabling it. > > Suggested-by: Ulf Hansson <ulf.hansson@linaro.org> > Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Kind regards Uffe > --- > drivers/base/power/runtime.c | 18 ++++++++++-------- > 1 file changed, 10 insertions(+), 8 deletions(-) > > diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c > index 50740da..ed62cca 100644 > --- a/drivers/base/power/runtime.c > +++ b/drivers/base/power/runtime.c > @@ -66,11 +66,14 @@ static int rpm_suspend(struct device *dev, int rpmflags); > */ > void update_pm_runtime_accounting(struct device *dev) > { > - u64 now = ktime_get_mono_fast_ns(); > - u64 last = dev->power.accounting_timestamp; > - u64 delta; > + u64 now, last, delta; > > - dev->power.accounting_timestamp = now; > + if (dev->power.disable_depth > 0) > + return; > + > + last = dev->power.accounting_timestamp; > + > + dev->power.accounting_timestamp = now = ktime_get_mono_fast_ns(); > > /* > * Because ktime_get_mono_fast_ns() is not monotonic during > @@ -82,9 +85,6 @@ void update_pm_runtime_accounting(struct device *dev) > > delta = now - last; > > - if (dev->power.disable_depth > 0) > - return; > - > if (dev->power.runtime_status == RPM_SUSPENDED) > dev->power.suspended_time += delta; > else > @@ -1298,6 +1298,9 @@ void __pm_runtime_disable(struct device *dev, bool check_resume) > pm_runtime_put_noidle(dev); > } > > + /* Update time accounting before disabling pm runtime */ > + update_pm_runtime_accounting(dev); > + > if (!dev->power.disable_depth++) > __pm_runtime_barrier(dev); > > @@ -1521,7 +1524,6 @@ void pm_runtime_init(struct device *dev) > dev->power.request_pending = false; > dev->power.request = RPM_REQ_NONE; > dev->power.deferred_resume = false; > - dev->power.accounting_timestamp = 0; > INIT_WORK(&dev->power.work, pm_runtime_work); > > dev->power.timer_expires = 0; > -- > 2.7.4 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-02-05 8:10 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-04 16:25 [PATCH 0/2] PM-runtime: fix and clean up of time accounting Vincent Guittot 2019-02-04 16:25 ` Vincent Guittot 2019-02-04 16:25 ` [PATCH 1/2] PM-runtime: move runtime accounting on ktime_get_mono_fast_ns() Vincent Guittot 2019-02-04 16:25 ` Vincent Guittot 2019-02-05 8:09 ` Ulf Hansson 2019-02-05 8:09 ` Ulf Hansson 2019-02-05 8:39 ` Vincent Guittot 2019-02-05 8:39 ` Vincent Guittot 2019-02-04 16:25 ` [PATCH 2/2] PM-runtime: update time accounting only when enabled Vincent Guittot 2019-02-04 16:25 ` Vincent Guittot 2019-02-05 8:09 ` Ulf Hansson [this message] 2019-02-05 8:09 ` Ulf Hansson 2019-02-06 10:27 ` [PATCH 0/2] PM-runtime: fix and clean up of time accounting Rafael J. Wysocki 2019-02-06 10:27 ` Rafael J. Wysocki
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=CAPDyKFqNgnvHM0hpgzy-oY+oj0_q72LDybgZJ5r8BugDM97Oqg@mail.gmail.com \ --to=ulf.hansson@linaro.org \ --cc=biju.das@bp.renesas.com \ --cc=geert@linux-m68k.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=rjw@rjwysocki.net \ --cc=thara.gopinath@linaro.org \ --cc=vincent.guittot@linaro.org \ /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: linkBe 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.