From 42909ca4bb422ca68c9519393ec56b1b63852093 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Tue, 15 Oct 2013 12:25:30 -0700 Subject: [PATCH] kernel - improve pv_hold() * pv_hold() can just use an atomic_add_int() here. --- sys/platform/pc64/x86_64/pmap.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/sys/platform/pc64/x86_64/pmap.c b/sys/platform/pc64/x86_64/pmap.c index 7138a22d62..f2779a64f1 100644 --- a/sys/platform/pc64/x86_64/pmap.c +++ b/sys/platform/pc64/x86_64/pmap.c @@ -2737,18 +2737,7 @@ pmap_reference(pmap_t pmap) static void pv_hold(pv_entry_t pv) { - u_int count; - - if (atomic_cmpset_int(&pv->pv_hold, 0, 1)) - return; - - for (;;) { - count = pv->pv_hold; - cpu_ccfence(); - if (atomic_cmpset_int(&pv->pv_hold, count, count + 1)) - return; - /* retry */ - } + atomic_add_int(&pv->pv_hold, 1); } /* -- 2.41.0