From: Stephen Boyd <sboyd@codeaurora.org> To: Rob Herring <robherring2@gmail.com> Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Russell King <linux@arm.linux.org.uk>, arm@kernel.org, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, John Stultz <john.stultz@linaro.org>, Thomas Gleixner <tglx@linutronix.de> Subject: [PATCH 2/4] ARM: sched_clock: Return suspended count earlier Date: Fri, 19 Apr 2013 17:29:04 -0700 [thread overview] Message-ID: <1366417746-24990-3-git-send-email-sboyd@codeaurora.org> (raw) In-Reply-To: <1366417746-24990-1-git-send-email-sboyd@codeaurora.org> If we're suspended and sched_clock() is called we're going to read the hardware one more time and throw away that value and return back the cached value we saved during the suspend callback. This is wasteful, let's short circuit all that and return the cached value if we're suspended as early as possible. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> --- arch/arm/kernel/sched_clock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c index 48ab64a..29ac613 100644 --- a/arch/arm/kernel/sched_clock.c +++ b/arch/arm/kernel/sched_clock.c @@ -55,9 +55,6 @@ static unsigned long long cyc_to_sched_clock(u32 cyc, u32 mask) u64 epoch_ns; u32 epoch_cyc; - if (cd.suspended) - return cd.epoch_ns; - /* * Load the epoch_cyc and epoch_ns atomically. We do this by * ensuring that we always write epoch_cyc, epoch_ns and @@ -174,6 +171,9 @@ unsigned long long __read_mostly (*sched_clock_func)(void) = sched_clock_32; unsigned long long notrace sched_clock(void) { + if (cd.suspended) + return cd.epoch_ns; + return sched_clock_func(); } -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 2/4] ARM: sched_clock: Return suspended count earlier Date: Fri, 19 Apr 2013 17:29:04 -0700 [thread overview] Message-ID: <1366417746-24990-3-git-send-email-sboyd@codeaurora.org> (raw) In-Reply-To: <1366417746-24990-1-git-send-email-sboyd@codeaurora.org> If we're suspended and sched_clock() is called we're going to read the hardware one more time and throw away that value and return back the cached value we saved during the suspend callback. This is wasteful, let's short circuit all that and return the cached value if we're suspended as early as possible. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> --- arch/arm/kernel/sched_clock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c index 48ab64a..29ac613 100644 --- a/arch/arm/kernel/sched_clock.c +++ b/arch/arm/kernel/sched_clock.c @@ -55,9 +55,6 @@ static unsigned long long cyc_to_sched_clock(u32 cyc, u32 mask) u64 epoch_ns; u32 epoch_cyc; - if (cd.suspended) - return cd.epoch_ns; - /* * Load the epoch_cyc and epoch_ns atomically. We do this by * ensuring that we always write epoch_cyc, epoch_ns and @@ -174,6 +171,9 @@ unsigned long long __read_mostly (*sched_clock_func)(void) = sched_clock_32; unsigned long long notrace sched_clock(void) { + if (cd.suspended) + return cd.epoch_ns; + return sched_clock_func(); } -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
next prev parent reply other threads:[~2013-04-20 0:29 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-04-18 19:30 [PATCH 1/2] clocksource: arm_arch_timer: unify sched_clock init Rob Herring 2013-04-18 19:30 ` Rob Herring 2013-04-18 19:30 ` [PATCH 2/2] clocksource: arm_arch_timer: add boot and suspend sched_clock offset Rob Herring 2013-04-18 19:30 ` Rob Herring 2013-04-19 14:46 ` Catalin Marinas 2013-04-19 14:46 ` Catalin Marinas 2013-04-19 0:00 ` [PATCH 1/2] clocksource: arm_arch_timer: unify sched_clock init Stephen Boyd 2013-04-19 0:00 ` Stephen Boyd 2013-04-19 1:37 ` Rob Herring 2013-04-19 1:37 ` Rob Herring 2013-04-19 17:34 ` Stephen Boyd 2013-04-19 17:34 ` Stephen Boyd 2013-04-20 0:29 ` [PATCH 0/4] ARM 64 bit sched_clock take #2 Stephen Boyd 2013-04-20 0:29 ` Stephen Boyd 2013-04-20 0:29 ` [PATCH 1/4] ARM: sched_clock: Remove unused needs_suspend member Stephen Boyd 2013-04-20 0:29 ` Stephen Boyd 2013-04-20 0:29 ` Stephen Boyd [this message] 2013-04-20 0:29 ` [PATCH 2/4] ARM: sched_clock: Return suspended count earlier Stephen Boyd 2013-04-20 0:29 ` [PATCH 3/4] ARM: sched_clock: Add support for >32 bit sched_clock Stephen Boyd 2013-04-20 0:29 ` Stephen Boyd 2013-04-20 0:29 ` Stephen Boyd 2013-04-22 10:48 ` Will Deacon 2013-04-22 10:48 ` Will Deacon 2013-04-22 10:48 ` Will Deacon 2013-04-22 15:35 ` Stephen Boyd 2013-04-22 15:35 ` Stephen Boyd 2013-04-22 15:35 ` Stephen Boyd 2013-04-20 0:29 ` [PATCH 4/4] ARM: arch_timer: Move to setup_sched_clock_64() Stephen Boyd 2013-04-20 0:29 ` Stephen Boyd 2013-04-22 15:16 ` [PATCH 0/4] ARM 64 bit sched_clock take #2 Arnd Bergmann 2013-04-22 15:16 ` Arnd Bergmann 2013-04-22 15:34 ` Mark Rutland 2013-04-22 15:34 ` Mark Rutland 2013-04-22 15:34 ` Mark Rutland 2013-04-22 15:36 ` Stephen Boyd 2013-04-22 15:36 ` Stephen Boyd 2013-04-22 15:36 ` Stephen Boyd 2013-04-22 15:51 ` Mark Rutland 2013-04-22 15:51 ` Mark Rutland 2013-04-22 15:51 ` Mark Rutland 2013-04-22 17:00 ` John Stultz 2013-04-22 17:00 ` John Stultz 2013-04-22 20:46 ` Rob Herring 2013-04-22 20:46 ` Rob Herring 2013-04-22 20:46 ` Rob Herring 2013-04-23 16:34 ` Stephen Boyd 2013-04-23 16:34 ` Stephen Boyd 2013-05-01 0:54 ` [PATCH 5/4] sched: Make ARM's sched_clock generic for all architectures Stephen Boyd 2013-05-01 0:54 ` Stephen Boyd 2013-05-01 0:54 ` [PATCH 6/4] arm64: Move to generic sched_clock infrastructure Stephen Boyd 2013-05-01 0:54 ` Stephen Boyd 2013-05-01 9:11 ` Catalin Marinas 2013-05-01 9:11 ` Catalin Marinas 2013-05-01 9:11 ` Catalin Marinas 2013-05-01 14:44 ` Christopher Covington 2013-05-01 14:44 ` Christopher Covington 2013-05-01 14:44 ` Christopher Covington 2013-05-31 20:40 ` [PATCH 5/4] sched: Make ARM's sched_clock generic for all architectures John Stultz 2013-05-31 20:40 ` John Stultz 2013-05-31 22:13 ` Stephen Boyd 2013-05-31 22:13 ` Stephen Boyd 2013-05-31 23:50 ` John Stultz 2013-05-31 23:50 ` John Stultz 2013-04-19 14:45 ` [PATCH 1/2] clocksource: arm_arch_timer: unify sched_clock init Catalin Marinas 2013-04-19 14:45 ` Catalin Marinas
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=1366417746-24990-3-git-send-email-sboyd@codeaurora.org \ --to=sboyd@codeaurora.org \ --cc=arm@kernel.org \ --cc=catalin.marinas@arm.com \ --cc=john.stultz@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=robherring2@gmail.com \ --cc=tglx@linutronix.de \ --cc=will.deacon@arm.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: 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.