All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baruch Siach <baruch@tkos.co.il>
To: Stephen Boyd <sboyd@codeaurora.org>
Cc: John Stultz <john.stultz@linaro.org>,
	Russell King <linux@arm.linux.org.uk>,
	linux-arm-msm@vger.kernel.org, Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org,
	Christopher Covington <cov@codeaurora.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 04/17] sched_clock: Add support for >32 bit sched_clock
Date: Fri, 19 Jul 2013 12:23:19 +0300	[thread overview]
Message-ID: <20130719092319.GA4681@tarshish> (raw)
In-Reply-To: <1374189690-10810-5-git-send-email-sboyd@codeaurora.org>

Hi Stephen,

On Thu, Jul 18, 2013 at 04:21:17PM -0700, Stephen Boyd wrote:
> The ARM architected system counter has at least 56 usable bits.
> Add support for counters with more than 32 bits to the generic
> sched_clock implementation so we can increase the time between
> wakeups due to dealing with wrap-around on these devices while
> benefiting from the irqtime accounting and suspend/resume
> handling that the generic sched_clock code already has. On my
> system using 56 bits over 32 bits changes the wraparound time
> from a few minutes to an hour. For faster running counters (GHz
> range) this is even more important because we may not be able to
> execute the timer in time to deal with the wraparound if only 32
> bits are used.
> 
> We choose a maxsec value of 3600 seconds because we assume no
> system will go idle for more than an hour. In the future we may
> need to increase this value.
> 
> Note: All users should switch over to the 64-bit read function so
> we can remove setup_sched_clock() in favor of sched_clock_register().
> 
> Cc: Russell King <linux@arm.linux.org.uk>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---

[..]

> @@ -110,14 +123,13 @@ void __init setup_sched_clock(u32 (*read)(void), int
>   bits, unsigned long rate)
>  	if (cd.rate > rate)
>  		return;
>  
> -	BUG_ON(bits > 32);
>  	WARN_ON(!irqs_disabled());
>  	read_sched_clock = read;
> -	sched_clock_mask = (1 << bits) - 1;
> +	sched_clock_mask = CLOCKSOURCE_MASK(bits);

Note that this conflicts with my integer overflow fix 
(http://article.gmane.org/gmane.linux.ports.arm.kernel/252498) that I hope 
will get merged before 3.11 is out.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

WARNING: multiple messages have this Message-ID (diff)
From: baruch@tkos.co.il (Baruch Siach)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 04/17] sched_clock: Add support for >32 bit sched_clock
Date: Fri, 19 Jul 2013 12:23:19 +0300	[thread overview]
Message-ID: <20130719092319.GA4681@tarshish> (raw)
In-Reply-To: <1374189690-10810-5-git-send-email-sboyd@codeaurora.org>

Hi Stephen,

On Thu, Jul 18, 2013 at 04:21:17PM -0700, Stephen Boyd wrote:
> The ARM architected system counter has at least 56 usable bits.
> Add support for counters with more than 32 bits to the generic
> sched_clock implementation so we can increase the time between
> wakeups due to dealing with wrap-around on these devices while
> benefiting from the irqtime accounting and suspend/resume
> handling that the generic sched_clock code already has. On my
> system using 56 bits over 32 bits changes the wraparound time
> from a few minutes to an hour. For faster running counters (GHz
> range) this is even more important because we may not be able to
> execute the timer in time to deal with the wraparound if only 32
> bits are used.
> 
> We choose a maxsec value of 3600 seconds because we assume no
> system will go idle for more than an hour. In the future we may
> need to increase this value.
> 
> Note: All users should switch over to the 64-bit read function so
> we can remove setup_sched_clock() in favor of sched_clock_register().
> 
> Cc: Russell King <linux@arm.linux.org.uk>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---

[..]

> @@ -110,14 +123,13 @@ void __init setup_sched_clock(u32 (*read)(void), int
>   bits, unsigned long rate)
>  	if (cd.rate > rate)
>  		return;
>  
> -	BUG_ON(bits > 32);
>  	WARN_ON(!irqs_disabled());
>  	read_sched_clock = read;
> -	sched_clock_mask = (1 << bits) - 1;
> +	sched_clock_mask = CLOCKSOURCE_MASK(bits);

Note that this conflicts with my integer overflow fix 
(http://article.gmane.org/gmane.linux.ports.arm.kernel/252498) that I hope 
will get merged before 3.11 is out.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

  reply	other threads:[~2013-07-19  9:23 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-18 23:21 [PATCH v4 00/17] 64-bit friendly generic sched_clock() Stephen Boyd
2013-07-18 23:21 ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 01/17] clocksource: Extract max nsec calculation into separate function Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 02/17] sched_clock: Use seqcount instead of rolling our own Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-19  9:03   ` Will Deacon
2013-07-19  9:03     ` Will Deacon
2013-07-19 14:20     ` Nicolas Pitre
2013-07-19 14:20       ` Nicolas Pitre
2013-07-19 14:27       ` Russell King - ARM Linux
2013-07-19 14:27         ` Russell King - ARM Linux
2013-07-18 23:21 ` [PATCH v4 03/17] sched_clock: Use an hrtimer instead of timer Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-22 18:21   ` John Stultz
2013-07-22 18:21     ` John Stultz
2013-07-22 18:45     ` Stephen Boyd
2013-07-22 18:45       ` Stephen Boyd
2013-07-22 18:58       ` Stephen Boyd
2013-07-22 18:58         ` Stephen Boyd
2013-07-22 19:07         ` Russell King - ARM Linux
2013-07-22 19:07           ` Russell King - ARM Linux
2013-07-22 20:48         ` John Stultz
2013-07-22 20:48           ` John Stultz
2013-07-22 20:50           ` Stephen Boyd
2013-07-22 20:50             ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 04/17] sched_clock: Add support for >32 bit sched_clock Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-19  9:23   ` Baruch Siach [this message]
2013-07-19  9:23     ` Baruch Siach
2013-07-19 16:29     ` Stephen Boyd
2013-07-19 16:29       ` Stephen Boyd
2013-07-19 16:29       ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 05/17] arch_timer: Move to generic sched_clock framework Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-10-02 17:44   ` Will Deacon
2013-10-02 17:44     ` Will Deacon
2013-10-14 18:44   ` Kevin Hilman
2013-10-14 18:44     ` Kevin Hilman
2013-10-14 18:55     ` Stephen Boyd
2013-10-14 18:55       ` Stephen Boyd
2013-10-14 20:14       ` Kevin Hilman
2013-10-14 20:14         ` Kevin Hilman
2013-10-14 20:18         ` John Stultz
2013-10-14 20:18           ` John Stultz
2013-10-14 20:18           ` John Stultz
2013-10-14 20:14       ` John Stultz
2013-10-14 20:14         ` John Stultz
2013-07-18 23:21 ` [PATCH v4 06/17] sched_clock: Remove sched_clock_func() hook Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 07/17] clocksource: bcm2835: Switch to sched_clock_register() Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-19 19:34   ` Stephen Warren
2013-07-19 19:34     ` Stephen Warren
2013-07-30 10:04   ` Daniel Lezcano
2013-07-30 10:04     ` Daniel Lezcano
2013-07-30 16:12     ` John Stultz
2013-07-30 16:12       ` John Stultz
2013-07-18 23:21 ` [PATCH v4 08/17] ocksource: dbx500-prcmu: " Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-19  0:18   ` Stephen Boyd
2013-07-19  0:18     ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 09/17] clocksource: dw_apb_timer_of: " Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 10/17] clocksource: mxs_timer: " Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-22  8:10   ` Shawn Guo
2013-07-22  8:10     ` Shawn Guo
2013-07-22  8:10     ` Shawn Guo
2013-07-22 16:23     ` Stephen Boyd
2013-07-22 16:23       ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 11/17] clocksource: nomadik: " Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 12/17] clocksource: samsung_pwm_timer: " Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 13/17] clocksource: tegra: " Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-19 19:34   ` Stephen Warren
2013-07-19 19:34     ` Stephen Warren
2013-07-18 23:21 ` [PATCH v4 14/17] clocksource: time-armada-370-xp: " Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-08-06  9:04   ` Gregory CLEMENT
2013-08-06  9:04     ` Gregory CLEMENT
2013-07-18 23:21 ` [PATCH v4 15/17] clocksource: sirf: Switch to sched_clock_register() and use 64 bits Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 16/17] clocksource: vf_pit_timer: Switch to sched_clock_register() Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:21 ` [PATCH v4 17/17] sched_clock: Deprecate setup_sched_clock() Stephen Boyd
2013-07-18 23:21   ` Stephen Boyd
2013-07-18 23:59 ` [PATCH v4 00/17] 64-bit friendly generic sched_clock() John Stultz
2013-07-18 23:59   ` John Stultz
2013-07-19  0:23   ` Stephen Boyd
2013-07-19  0:23     ` Stephen Boyd
2013-10-02 17:47   ` Will Deacon
2013-10-02 17:47     ` Will Deacon
2013-10-02 18:02     ` John Stultz
2013-10-02 18:02       ` John Stultz
2013-10-02 18:13       ` Will Deacon
2013-10-02 18:13         ` Will Deacon
2013-07-20 20:51 ` Linus Walleij
2013-07-20 20:51   ` Linus Walleij
2013-07-22 16:24   ` Stephen Boyd
2013-07-22 16:24     ` Stephen Boyd
2013-07-22 17:07 ` John Stultz
2013-07-22 17:07   ` John Stultz
2013-07-24 14:44 ` Christopher Covington
2013-07-24 14:44   ` Christopher Covington

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=20130719092319.GA4681@tarshish \
    --to=baruch@tkos.co.il \
    --cc=catalin.marinas@arm.com \
    --cc=cov@codeaurora.org \
    --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=sboyd@codeaurora.org \
    --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: 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.