summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/runq.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-12-06 23:24:18 +0000
committerpeter <peter@FreeBSD.org>2003-12-06 23:24:18 +0000
commita2b247f294fb17ba705f2ad4191ab8a798210820 (patch)
tree171f441887d0f0f506a2920a19ff2cb9d1c2f01f /sys/amd64/include/runq.h
parent955dcc87c12e5c1e8d571b6776bd8b2d326d650b (diff)
downloadFreeBSD-src-a2b247f294fb17ba705f2ad4191ab8a798210820.zip
FreeBSD-src-a2b247f294fb17ba705f2ad4191ab8a798210820.tar.gz
Reconfigure the runq macros to use the 64 bit ffs/bsf routines instead
of doing a loop and taking two 32 bit passes at the runqueue bits. All the 64 bit platforms should probably do this since there are 64 run queues. Approved by: re (scottl)
Diffstat (limited to 'sys/amd64/include/runq.h')
-rw-r--r--sys/amd64/include/runq.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/amd64/include/runq.h b/sys/amd64/include/runq.h
index 2a21bfa..0f2f4ef 100644
--- a/sys/amd64/include/runq.h
+++ b/sys/amd64/include/runq.h
@@ -29,18 +29,18 @@
#ifndef _MACHINE_RUNQ_H_
#define _MACHINE_RUNQ_H_
-#define RQB_LEN (2) /* Number of priority status words. */
-#define RQB_L2BPW (5) /* Log2(sizeof(rqb_word_t) * NBBY)). */
+#define RQB_LEN (1) /* Number of priority status words. */
+#define RQB_L2BPW (6) /* Log2(sizeof(rqb_word_t) * NBBY)). */
#define RQB_BPW (1<<RQB_L2BPW) /* Bits in an rqb_word_t. */
-#define RQB_BIT(pri) (1 << ((pri) & (RQB_BPW - 1)))
+#define RQB_BIT(pri) (1ul << ((pri) & (RQB_BPW - 1)))
#define RQB_WORD(pri) ((pri) >> RQB_L2BPW)
-#define RQB_FFS(word) (ffs(word) - 1)
+#define RQB_FFS(word) (bsfq(word))
/*
* Type of run queue status word.
*/
-typedef u_int32_t rqb_word_t;
+typedef u_int64_t rqb_word_t;
#endif
OpenPOWER on IntegriCloud