lkml.org 
[lkml]   [2006]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Silly bitmap size accounting fix
Steven Rostedt wrote:
> On Sat, 13 May 2006, Nick Piggin wrote:
>
>
>>Ingo Molnar wrote:
>>
>>>* Steven Rostedt <rostedt@goodmis.org> wrote:
>>>
>>>
>>>
>>>>-#define BITMAP_SIZE ((((MAX_PRIO+1+7)/8)+sizeof(long)-1)/sizeof(long))
>>>>+#define BITMAP_SIZE ((((MAX_PRIO+7)/8)+sizeof(long)-1)/sizeof(long))
>>>
>>>
>>>Acked-by: Ingo Molnar <mingo@elte.hu>
>>
>>Really?! What about the delimiter bit set at MAX_PRIO?
>
>
>
> // delimiter for bitsearch
> __set_bit(MAX_PRIO, array->bitmap);
>
>
> Ah! I see what you mean. New patch (add a comment).

That would have caused someone a world of pain 3 years ahead ;)

>
> -- Steve
>
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

OK I guess. Does it help to also spell out exactly what's going on there?

>
> Index: linux-2.6.17-rc3-mm1/kernel/sched.c
> ===================================================================
> --- linux-2.6.17-rc3-mm1.orig/kernel/sched.c 2006-05-12 04:02:32.000000000 -0400
> +++ linux-2.6.17-rc3-mm1/kernel/sched.c 2006-05-13 10:09:15.000000000 -0400
> @@ -192,6 +192,10 @@ static inline unsigned int task_timeslic
> * These are the runqueue data structures:
> */
>
> +/*
> + * Calculate BITMAP_SIZE.
> + * The bitmask holds MAX_PRIO bits + 1 for the delimiter.

+ * Calculation is to find the minimum number of longs that holds MAX_PRIO+1 bits:
+ * size-in-chars = ceiling((MAX_PRIO+1) / CHAR_BITS)
+ * size-in-longs = ceiling(size-in-chars / sizeof(long))

> + */
> #define BITMAP_SIZE ((((MAX_PRIO+1+7)/8)+sizeof(long)-1)/sizeof(long))
>

--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-05-13 16:41    [W:0.127 / U:0.452 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site