From: Denis Vlasenko <vda.linux@googlemail.com>
To: Russell King <rmk+lkml@arm.linux.org.uk>
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH 3/3] delay: add generic udelay(), mdelay() and ssleep()
Date: Fri, 22 Sep 2006 15:46:37 +0200 [thread overview]
Message-ID: <200609221546.37492.vda.linux@googlemail.com> (raw)
In-Reply-To: <20060922093659.GA8609@flint.arm.linux.org.uk>
On Friday 22 September 2006 11:36, Russell King wrote:
> On Fri, Sep 22, 2006 at 10:00:33AM +0200, Denis Vlasenko wrote:
> > * __const_udelay for all arches is removed or renamed to
> > ? __const_delay (it did not do microsecond delays anyway)
> You never explained this properly - in fact I think your logic is
> reversed.
linux-2.6.18/arch/i386/lib/delay.c:
void __udelay(unsigned long usecs)
{
__const_udelay(usecs * 0x000010c7); /* 2**32 / 1000000 (rounded up) */
}
__udelay(n) is meant to busy loop for N microseconds,
and it is easy to see from above code that
__udelay(n) == __const_udelay(n*0x10c7).
So __const_udelay(x) doesn not delay for x microseconds.
It's a bad name.
> Let me remind you of my reply (which afaics never got
> a response):
> On Wed, Aug 23, 2006 a 09:14:52AM +0100, Russell King wrote:
> > On Wed, Aug 23, 2006 at 07:50:24AM +0200, Denis Vlasenko wrote:
> > > On Tuesday 22 August 2006 18:55, Russell King wrote:
> > > > Please keep a "const" version in ARM. Thanks.
> > >
> > > Are you talking about this hunk? Why do you want to keep it?
> > >
> > > I mean, without it udelay(n) will become slower by the time
> > > needed for one extra multiply. So we will have maybe
> > > udelay(n) ==> udelay(n+0.1).
> >
> > Why do you think that? With the constant version, the additional
> > unnecessary multiply is optimised away by the compiler (since
> > constant * constant = constant), so it's actually slightly faster,
> > not sligntly slower as you seem to think.
> >
> > Since the multiply is pure overhead, it's better to get rid of it.
I did send a reply. Maybe the problem was that I removed
l-k from CC...
On Wednesday 23 August 2006 10:39, Denis Vlasenko wrote:
> > Why do you think that? With the constant version, the additional
> > unnecessary multiply is optimised away by the compiler (since
> > constant * constant = constant), so it's actually slightly faster,
> > not sligntly slower as you seem to think.
>
> We are not disagreeind. I said it wrong way. I meant
> "with this #define removed, udelay(n) will become slower...".
>
> And I am saying that it is _100% okay_ for it to become slower:
>
> > Since the multiply is pure overhead, it's better to get rid of it.
>
> You do not need to optimize delay for speed. If you
> really want to, then you can do:
>
> #define udelay(n) do {} while(0)
>
> Makes sense? No it does not. That's what I'm trying to say.
> You WANT to pause for thousands of cycles. Why you are trying
> to shave off ~10 cycles at the very same time?
>
> Hope it makes things clearer.
So, to reiterate, optimizing udelay(N) for speed makes no sense.
--
vda
prev parent reply other threads:[~2006-09-22 13:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200609220955.35826.vda.linux@googlemail.com>
2006-09-22 7:57 ` [PATCH 1/3] delay: s/#include <asm/delay.h>/#include <linux/delay.h>/ Denis Vlasenko
2006-09-22 7:58 ` [PATCH 2/3] delay: remove references to MAX_UDELAY_MS; fix comment Denis Vlasenko
2006-09-22 8:00 ` [PATCH 3/3] delay: add generic udelay(), mdelay() and ssleep() Denis Vlasenko
2006-09-22 9:36 ` Russell King
2006-09-22 13:46 ` Denis Vlasenko [this message]
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=200609221546.37492.vda.linux@googlemail.com \
--to=vda.linux@googlemail.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rmk+lkml@arm.linux.org.uk \
/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.