Author: mjg
Date: Wed Sep 23 10:42:41 2020
New Revision: 366069
URL: https://svnweb.freebsd.org/changeset/base/366069

Log:
  cache: clean up atomic ops on numneg and numcache
  
  - use subtract instead of adding -1
  - drop the useless _rel fence
  
  Note this should be converted to a scalable scheme.

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c   Wed Sep 23 09:59:06 2020        (r366068)
+++ head/sys/kern/vfs_cache.c   Wed Sep 23 10:42:41 2020        (r366069)
@@ -841,7 +841,7 @@ cache_negative_insert(struct namecache *ncp)
        mtx_lock(&neglist->nl_lock);
        TAILQ_INSERT_TAIL(&neglist->nl_list, ncp, nc_dst);
        mtx_unlock(&neglist->nl_lock);
-       atomic_add_rel_long(&numneg, 1);
+       atomic_add_long(&numneg, 1);
 }
 
 static void
@@ -887,7 +887,7 @@ cache_negative_remove(struct namecache *ncp)
                mtx_unlock(&neglist->nl_lock);
        if (hot_locked)
                mtx_unlock(&ncneg_hot.nl_lock);
-       atomic_subtract_rel_long(&numneg, 1);
+       atomic_subtract_long(&numneg, 1);
 }
 
 static void
@@ -1030,7 +1030,7 @@ cache_zap_locked(struct namecache *ncp)
                        counter_u64_add(numcachehv, -1);
                }
        }
-       atomic_subtract_rel_long(&numcache, 1);
+       atomic_subtract_long(&numcache, 1);
 }
 
 static void
@@ -1959,7 +1959,7 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, 
         */
        lnumcache = atomic_fetchadd_long(&numcache, 1) + 1;
        if (__predict_false(lnumcache >= ncsize)) {
-               atomic_add_long(&numcache, -1);
+               atomic_subtract_long(&numcache, 1);
                counter_u64_add(numdrops, 1);
                return;
        }
@@ -2125,7 +2125,7 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, 
        return;
 out_unlock_free:
        cache_enter_unlock(&cel);
-       atomic_add_long(&numcache, -1);
+       atomic_subtract_long(&numcache, 1);
        cache_free(ncp);
        return;
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to