sched: implement 180 bit sched bitmap
Subsystems (2)
PATCH 4/7 sched: implement 180 bit sched bitmap
From: Con Kolivas <[email protected]>
Modify the sched_find_first_bit function to work on a 180bit long bitmap.
Signed-off-by Con Kolivas <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Nick Piggin <[email protected]>
Cc "Siddha, Suresh B" <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
include/asm-generic/bitops/sched.h | 10 ++++++---- include/asm-s390/bitops.h | 12 +----------- 2 files changed, 7 insertions(+), 15 deletions(-)
include/asm-generic/bitops/sched.h +6 -4
@@ -6,8 +6,8 @@/* * Every architecture must define this function. It's the fastest -* way of searching a 140-bit bitmap where the first 100 bits are -* unlikely to be set. It's guaranteed that at least one of the 140 +* way of searching a 180-bit bitmap where the first 100 bits are +* unlikely to be set. It's guaranteed that at least one of the 180 * bits is cleared. */ static inline int sched_find_first_bit (const unsigned long *b)
@@ -15,7 +15,7 @@ static inline int sched_find_first_bit(c#if BITS_PER_LONG ==64 if (unlikely (b[0 ]))return __ffs (b[0 ]); -if (likely (b[1 ])) +if (b[1 ])return __ffs (b[1 ]) +64 ;return __ffs (b[2 ]) +128 ;#elif BITS_PER_LONG ==32
@@ -27,7 +27,9 @@ static inline int sched_find_first_bit(creturn __ffs (b[2 ]) +64 ;if (b[3 ])return __ffs (b[3 ]) +96 ; -return __ffs (b[4 ]) +128 ; +if (b[4 ]) +return __ffs (b[4 ]) +128 ; +return __ffs (b[5 ]) +160 ;#else #error BITS_PER_LONG not defined#endif
include/asm-s390/bitops.h +1 -11
@@ -729,17 +729,7 @@ find_next_bit (const unsigned long * addreturn offset +find_first_bit (p, size); } -/* -* Every architecture must define this function. It's the fastest -* way of searching a 140-bit bitmap where the first 100 bits are -* unlikely to be set. It's guaranteed that at least one of the 140 -* bits is cleared. -*/ -static inline int sched_find_first_bit (unsigned long *b) -{ -return find_first_bit (b,140 ); -} - +#include <asm-generic/bitops/sched.h> #include <asm-generic/bitops/ffs.h> #include <asm-generic/bitops/fls.h>
Signature · 1 line
-ck