vfs: flip deferred_inact to atomic
Turns out it is very rarely triggered, making a per-cpu counter a waste. Examples from real life boxes: uptime counter 135 days 847 138 days 2190 141 days 1
This commit is contained in:
parent
e5eb1d298f
commit
245767c278
@ -198,9 +198,9 @@ static counter_u64_t recycles_free_count;
|
||||
SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles_free, CTLFLAG_RD, &recycles_free_count,
|
||||
"Number of free vnodes recycled to meet vnode cache targets");
|
||||
|
||||
static counter_u64_t deferred_inact;
|
||||
SYSCTL_COUNTER_U64(_vfs, OID_AUTO, deferred_inact, CTLFLAG_RD, &deferred_inact,
|
||||
"Number of times inactive processing was deferred");
|
||||
static u_long deferred_inact;
|
||||
SYSCTL_ULONG(_vfs, OID_AUTO, deferred_inact, CTLFLAG_RD,
|
||||
&deferred_inact, 0, "Number of times inactive processing was deferred");
|
||||
|
||||
/* To keep more than one thread at a time from running vfs_getnewfsid */
|
||||
static struct mtx mntid_mtx;
|
||||
@ -734,7 +734,6 @@ vntblinit(void *dummy __unused)
|
||||
vnodes_created = counter_u64_alloc(M_WAITOK);
|
||||
recycles_count = counter_u64_alloc(M_WAITOK);
|
||||
recycles_free_count = counter_u64_alloc(M_WAITOK);
|
||||
deferred_inact = counter_u64_alloc(M_WAITOK);
|
||||
|
||||
/*
|
||||
* Initialize the filesystem syncer.
|
||||
@ -3211,7 +3210,7 @@ vdefer_inactive(struct vnode *vp)
|
||||
vlazy(vp);
|
||||
vp->v_iflag |= VI_DEFINACT;
|
||||
VI_UNLOCK(vp);
|
||||
counter_u64_add(deferred_inact, 1);
|
||||
atomic_add_long(&deferred_inact, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user