HomeFreeBSD

vfs: consult freevnodes in vnlru_kick_cond

Description

vfs: consult freevnodes in vnlru_kick_cond

If the count is high enough there is no point trying to produce more.
Not going there reduces traffic on the vnode_list mtx.

This further shaves total real time in a test mentioned in:
74be676d87745eb7 ("vfs: drop one vnode list lock trip during vnlru free
recycle") -- 20 instances of find each creating 1 million vnodes, while
total limit is set to 400k.

Time goes down from ~41 to ~35 seconds.

Sponsored by: Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 23ef25d25d989e7213bc1d3ef32b0f48a9eb2537)
(cherry picked from commit 5cf1c99d4c425ab196dfa3bafcf3a5f142eab887)

Approved by: re (gjb)

Details

Provenance
mjgAuthored on Oct 10 2023, 4:19 PM
Parents
rG988f3becc6d4: vfs: be less eager to call uma_reclaim(UMA_RECLAIM_DRAIN)
Branches
Unknown
Tags
Unknown