[PATCH 0/3] make mdelay, udelay and ssleep calls smaller

From: Denis Vlasenko
Date: Fri Sep 22 2006 - 04:11:36 EST


Hello Andrew,

This version is basically unchanged except for rediff
against 2.6.18. I was running previous version for
several weeks on 2.6.17.x kernels.

Russell King was giving me some feedback. I think that
my reply satisfied him - I got no further comments:

On Wednesday 23 August 2006 10:39, Denis Vlasenko wrote:
>On Wednesday 23 August 2006 10:14, Russell King wrote:
>> Please keep a "const" version in ARM.  Thanks.
>
> 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).
>
>> 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.



On with patch explanation:

Currently, magic in include/linux/delay.h
inlines mdelay and ssleep, and various arches
do the same to udelay.

This is pointless. We are going to perform a delay of 1000+
CPU cycles anyway, no need to optimize away a few cycles.

This patchset converts magic calls to these inlines/macros
into pure and simple function calls, with no additional
math done or hidden arguments pushed to stack
at the callsite.

Reduces allyesconfig kernel by about 7 kb.

Signed-off-by: Denis Vlasenko <vda.linux@xxxxxxxxxxxxxx>
--
vda
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/