diff options
author | alfred <alfred@FreeBSD.org> | 2012-12-04 05:28:20 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2012-12-04 05:28:20 +0000 |
commit | d7137f4490527ab29539c6960e456c634dc6803b (patch) | |
tree | 8d80e68e1d45e9e92d78fa8e310bd5c462c46fea /sys/kern/kern_timeout.c | |
parent | 37b244a4a0c218337fe2320185f4a4c48b20b830 (diff) | |
download | FreeBSD-src-d7137f4490527ab29539c6960e456c634dc6803b.zip FreeBSD-src-d7137f4490527ab29539c6960e456c634dc6803b.tar.gz |
replace bit shifting loop with 1<<fls(n), improve comments.
Reviewed by: davide
Diffstat (limited to 'sys/kern/kern_timeout.c')
-rw-r--r-- | sys/kern/kern_timeout.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/kern/kern_timeout.c b/sys/kern/kern_timeout.c index e3e1e9d..a7aeb34 100644 --- a/sys/kern/kern_timeout.c +++ b/sys/kern/kern_timeout.c @@ -84,7 +84,7 @@ SYSCTL_INT(_debug, OID_AUTO, to_avg_mpcalls, CTLFLAG_RD, &avg_mpcalls, 0, * TODO: * allocate more timeout table slots when table overflows. */ -int callwheelsize, callwheelbits, callwheelmask; +int callwheelsize, callwheelmask; /* * The callout cpu migration entity represents informations necessary for @@ -218,12 +218,10 @@ kern_timeout_callwheel_alloc(caddr_t v) timeout_cpu = PCPU_GET(cpuid); cc = CC_CPU(timeout_cpu); /* - * Calculate callout wheel size + * Calculate callout wheel size, should be next power of two higher + * than 'ncallout'. */ - for (callwheelsize = 1, callwheelbits = 0; - callwheelsize < ncallout; - callwheelsize <<= 1, ++callwheelbits) - ; + callwheelsize = 1 << fls(ncallout); callwheelmask = callwheelsize - 1; cc->cc_callout = (struct callout *)v; |