From bdf2da8cf71df690bdd39ae5a5bc2f5d3f29c829 Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Mon, 5 May 2008 11:07:48 +0000 Subject: [PATCH] Use mask instead of modulo, since bo->backoff is always power of 2 Suggested-by: dillon@ --- sys/kern/kern_spinlock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_spinlock.c b/sys/kern/kern_spinlock.c index 43416af7d..9ddc84f40 100644 --- a/sys/kern/kern_spinlock.c +++ b/sys/kern/kern_spinlock.c @@ -29,7 +29,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/kern/kern_spinlock.c,v 1.12 2008/05/04 04:48:47 sephe Exp $ + * $DragonFly: src/sys/kern/kern_spinlock.c,v 1.13 2008/05/05 11:07:48 sephe Exp $ */ #include @@ -266,8 +266,8 @@ exponential_backoff(struct exponential_backoff *bo) #ifdef _RDTSC_SUPPORTED_ if (cpu_feature & CPUID_TSC) { backoff = - ((u_long)rdtsc() ^ (((u_long)curthread) >> 5)) % bo->backoff - + BACKOFF_INITIAL; + (((u_long)rdtsc() ^ (((u_long)curthread) >> 5)) & + (bo->backoff - 1)) + BACKOFF_INITIAL; } else #endif backoff = bo->backoff; -- 2.11.4.GIT