Messages in this thread Patch in this message | | | From | Felix Fietkau <> | Subject | [PATCH] timer: optimize apply_slack() | Date | Sat, 17 Mar 2012 22:31:35 +0100 |
| |
__fls(mask) is equivalent to find_last_bit(&mask, BITS_PER_LONG), but cheaper. find_last_bit was showing up high on the list when I was profiling for stalls on icache misses on a system with very small cache size (MIPS).
Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- kernel/timer.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/timer.c b/kernel/timer.c index a297ffc..659371e 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -809,7 +809,7 @@ unsigned long apply_slack(struct timer_list *timer, unsigned long expires) if (mask == 0) return expires; - bit = find_last_bit(&mask, BITS_PER_LONG); + bit = __fls(mask); mask = (1 << bit) - 1; -- 1.7.3.2
| |