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"