linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 2/2] ARM: delay: allow timer-based delay implementation to be selected
Date: Thu, 12 Jul 2012 09:40:03 -0700	[thread overview]
Message-ID: <4FFEFDE3.5000403@codeaurora.org> (raw)
In-Reply-To: <4FFE9A69.3060301@renesas.com>

On 07/12/12 02:35, Shinya Kuribayashi wrote:
> On 7/12/2012 5:44 PM, Will Deacon wrote:
>>> On 6/30/2012 2:33 AM, Will Deacon wrote:
>>>> +void __init init_current_timer_delay(unsigned long freq)
>>>> +{
>>>> +	pr_info("Switching to timer-based delay loop\n");
>>>> +	lpj_fine			= freq / HZ;
>>>> +	arm_delay_ops.delay		= __timer_delay;
>>>> +	arm_delay_ops.const_udelay	= __timer_const_udelay;
>>>> +	arm_delay_ops.udelay		= __timer_udelay;
>>>> +}
>>> Once this function is processed, the udelay() behavior changes
>>> _immediately_ from loop-based delay to timer-based one, without waiting
>>> for 'loops_per_jiffy' itself being corrected in calibrate_delay().
>>>
>>> As a result, actual udelay()s may be toooo long than expected, in
>>> particular udelay()s used between init_current_timer_delay() and
>>> calibrate_delay().  It's unlikely be short, as the frequency of a
>>> counter for read_current_timer is typically slower than CPU frequency.
>> Surely using udelay before calibrate_delay_loop has been called is a
>> fundamental error?
> Got it.  I'm just not confident about disallowing early use of udelay().
>
>

I don't think it's an error. Instead you get a very large delay, similar
to what would happen if you called udelay() before calibrate_delay()
anyway (see the comment in init/main.c above loops_per_jiffy).

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

  reply	other threads:[~2012-07-12 16:40 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-29 17:33 [PATCH v2 0/2] Use architected timers for delay loop Will Deacon
2012-06-29 17:33 ` [PATCH v2 1/2] ARM: arch timer: implement read_current_timer and get_cycles Will Deacon
2012-07-02 19:14   ` Stephen Boyd
2012-07-05 12:35   ` Shinya Kuribayashi
2012-07-05 12:59     ` Will Deacon
2012-06-29 17:33 ` [PATCH v2 2/2] ARM: delay: allow timer-based delay implementation to be selected Will Deacon
2012-07-02 19:14   ` Stephen Boyd
2012-07-02 21:53     ` Will Deacon
2012-07-03 12:09   ` Shinya Kuribayashi
2012-07-04 15:36     ` Will Deacon
2012-07-05 12:12       ` Shinya Kuribayashi
2012-07-05 12:56         ` Will Deacon
2012-07-05 16:51           ` Stephen Boyd
2012-07-05 13:06   ` Shinya Kuribayashi
2012-07-05 14:15     ` Will Deacon
2012-07-12  7:33   ` Shinya Kuribayashi
2012-07-12  8:44     ` Will Deacon
2012-07-12  9:35       ` Shinya Kuribayashi
2012-07-12 16:40         ` Stephen Boyd [this message]
2012-07-13  2:16           ` Shinya Kuribayashi
2012-07-13  8:57             ` Will Deacon
2012-07-13 10:48               ` Shilimkar, Santosh
2012-07-13 11:13                 ` Will Deacon
2012-07-13 12:04                   ` Shilimkar, Santosh
2012-07-13 12:08                     ` Will Deacon
2012-07-13 12:14                       ` Shilimkar, Santosh
2012-07-13 12:23                         ` Will Deacon
2012-07-13 12:28                           ` Shilimkar, Santosh
2012-07-17  3:10                   ` Shinya Kuribayashi
2012-07-17  6:11                     ` Shilimkar, Santosh
2012-07-17  7:42                       ` Shinya Kuribayashi
2012-07-17  9:05                         ` Will Deacon
2012-07-19 12:43                           ` Shinya Kuribayashi
2012-07-18 17:52                         ` Will Deacon
2012-07-19 15:19                           ` Jonathan Austin
2012-07-20 10:17                             ` Will Deacon
2012-07-24  9:06                               ` Shinya Kuribayashi
2012-07-24  9:15                                 ` Will Deacon

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=4FFEFDE3.5000403@codeaurora.org \
    --to=sboyd@codeaurora.org \
    --cc=linux-arm-kernel@lists.infradead.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: 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).