Re: [PATCH 2/2] sched: fix cpupri priocount
From: Gregory Haskins <hidden>
Date: 2008-06-04 21:52:27
Also in:
lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
quoted
quoted
On Wed, Jun 4, 2008 at 5:09 PM, in message
[ref], Peter Zijlstra [off-list ref] wrote:
On Wed, 2008-06-04 at 15:04 -0400, Gregory Haskins wrote:quoted
A rounding error was pointed out by Peter Zijlstra which would result in the structure holding priorities to be off by one. Signed-off-by: Gregory Haskins <redacted> CC: Peter Zijlstra <peterz@infradead.org> --- kernel/sched_cpupri.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)diff --git a/kernel/sched_cpupri.h b/kernel/sched_cpupri.h index 16d29b9..817c55c 100644 --- a/kernel/sched_cpupri.h +++ b/kernel/sched_cpupri.h@@ -4,7 +4,7 @@ #include <linux/sched.h> #define CPUPRI_NR_PRIORITIES 2+MAX_RT_PRIO -#define CPUPRI_NR_PRI_WORDS CPUPRI_NR_PRIORITIES/BITS_PER_LONG +#define CPUPRI_NR_PRI_WORDS (CPUPRI_NR_PRIORITIES +BITS_PER_LONG/2)/BITS_PER_LONG (33 + 16) / 32 = 49 / 32 = 1 So its still wrong ;-) Please use DECLARE_BITMAP and or BITS_TO_LONGS to avoid these issues.
Indeed. Here is a new version:
(Thanks, Peter!)
------
sched: fix cpupri priocount
A rounding error was pointed out by Peter Zijlstra which would result
in the structure holding priorities to be off by one.
Signed-off-by: Gregory Haskins [off-list ref]
CC: Peter Zijlstra [off-list ref]
diff --git a/kernel/sched_cpupri.h b/kernel/sched_cpupri.h
index 16d29b9..51e6553 100644
--- a/kernel/sched_cpupri.h
+++ b/kernel/sched_cpupri.h@@ -4,7 +4,7 @@ #include <linux/sched.h> #define CPUPRI_NR_PRIORITIES 2+MAX_RT_PRIO -#define CPUPRI_NR_PRI_WORDS CPUPRI_NR_PRIORITIES/BITS_PER_LONG +#define CPUPRI_NR_PRI_WORDS BITS_TO_LONGS(CPUPRI_NR_PRIORITIES) #define CPUPRI_INVALID -1 #define CPUPRI_IDLE 0