From nobody Tue May 19 18:42:14 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gKk6t75F0z6fcJP for ; Tue, 19 May 2026 18:42:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKk6t5jKNz3YQg for ; Tue, 19 May 2026 18:42:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779216134; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J1s6L5HZ1Byapr3BeFoYMP9myswGR/U1E1X8mLal1kA=; b=osAbY6inXaaz5EpfwfcL9DPZg9KK5MQCUbOxqYcwNndjXHPW6B+LRBjgsKwXZpRiYUkTTY 13sQ1rWmJnPiSGT2/m0DgP4SUGbilvrfV1x/KpwOywEfnEj3H829boetW9kOzokLyweYT2 HNZQZRhD9C3PM62CDd3OXaAZV2n15nhoZwKVgzNn6XS0SY7mrV7QWIM5lcN2cldK0KTup8 do6LPYTEPJvfDHIZCZpcBOZkR2po6vVGY0NKhe623TZtePor2ffJuZ38vjmfh6JRTpregI EPxFVfr7YX2ym6RTc4TATs5OPPTXiApFHYE1Dgq2yAqVnt2a1lgYCwZuiW8n4A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779216134; a=rsa-sha256; cv=none; b=NgN2I1dGbWKUiLn6+pYoSey5t1zesBTajlUxXYlyPsrgVHK2d1IMNxzoP/U8rRCyz489aI 1BZdyDKgC6ew5GebGlEbWm3ivaNiMBCjUhNobQ12udxK3muT0Onmh3gDCVa/PU7PRQU96G S6fBo5Rn19RsIKLYZPZjac2MlgkHfeC+S0TKywVw2M4tjj4gw1/5YIxJrDur+PKzwU38Zj s/Ziq/GYG4D3GiG3UGR9gE0lKCvVXxPOfCOgMI9o1QJwZI2MPy+GKvolAvuTliCCWJipb2 JU90WPrkocpQ1LuxRDc/zOYuWxVCX5fm2cNrSyzEyTHtvJNIyl/e0ZPcYgrGZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779216134; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J1s6L5HZ1Byapr3BeFoYMP9myswGR/U1E1X8mLal1kA=; b=XR2yPowOb2RgyGddg/A4vwVwfhP6Ypo8EQE3uwEIuEbWEZ7ALqVsMhmdXsLIjcj3wQbUK8 BtiIBGwJZWAb+uhDnGrEJuDOe+kNqhCsnCvD/gE5YotKGfuxl4GaB+htVIcQn/h1/n/kCC MetE/nkhyxWMhK90QJTtlS2k2wtYvMAHX7Hc6rIPC2NyygFIP2PYXFYAJz16CgJVi5ouY8 7xCDBtv5k8TD0QlXl75Xmst2faiP2oEj9+VoHpfTJkHdNVMKdDipiFz0jN/ocpL6wesgnm aC3o7t9IbwUqcyrH8NdYVs2VYp6BXWDV4Y6kip2XRVlaiahswWxkil1c+Vlfxg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKk6t5C0GzC3r for ; Tue, 19 May 2026 18:42:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31794 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 18:42:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ryan Libby Subject: git: 296c174835cf - main - vnlru: avoid trigger calculation when force < 2 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rlibby X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 296c174835cf603b966e48b232715942df9b6934 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 18:42:14 +0000 Message-Id: <6a0caf06.31794.5c579f0a@gitrepo.freebsd.org> The branch main has been updated by rlibby: URL: https://cgit.FreeBSD.org/src/commit/?id=296c174835cf603b966e48b232715942df9b6934 commit 296c174835cf603b966e48b232715942df9b6934 Author: Ryan Libby AuthorDate: 2026-05-19 18:07:57 +0000 Commit: Ryan Libby CommitDate: 2026-05-19 18:07:57 +0000 vnlru: avoid trigger calculation when force < 2 Reviewed by: kib (previous version), olce Sponsored by: Dell Inc. Differential Revision: https://reviews.freebsd.org/D56950 --- sys/kern/vfs_subr.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 54e883038046..848d3ac767f3 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1775,7 +1775,7 @@ SYSCTL_ULONG(_vfs_vnode_vnlru, OID_AUTO, uma_reclaim_calls, CTLFLAG_RD | CTLFLAG static void vnlru_proc(void) { - u_long rnumvnodes, rfreevnodes, target; + u_long rnumvnodes, target; unsigned long onumvnodes; int done, force, trigger, usevnodes; bool reclaim_nc_src, want_reread; @@ -1824,7 +1824,6 @@ vnlru_proc(void) vnlru_proc_sleep(); continue; } - rfreevnodes = vnlru_read_freevnodes(); onumvnodes = rnumvnodes; /* @@ -1833,14 +1832,7 @@ vnlru_proc(void) * The trigger point is to avoid recycling vnodes with lots * of resident pages. We aren't trying to free memory; we * are trying to recycle or at least free vnodes. - */ - if (rnumvnodes <= desiredvnodes) - usevnodes = rnumvnodes - rfreevnodes; - else - usevnodes = rnumvnodes; - if (usevnodes <= 0) - usevnodes = 1; - /* + * * The trigger value is chosen to give a conservatively * large value to ensure that it alone doesn't prevent * making progress. The value can easily be so large that @@ -1848,9 +1840,18 @@ vnlru_proc(void) * misconfigured cases, and this is necessary. Normally * it is about 8 to 100 (pages), which is quite large. */ - trigger = vm_cnt.v_page_count * 2 / usevnodes; - if (force < 2) + if (force < 2) { trigger = vsmalltrigger; + } else { + if (rnumvnodes <= desiredvnodes) + usevnodes = rnumvnodes - + vnlru_read_freevnodes(); + else + usevnodes = rnumvnodes; + if (usevnodes <= 0) + usevnodes = 1; + trigger = vm_cnt.v_page_count * 2 / usevnodes; + } reclaim_nc_src = force >= 3; target = rnumvnodes * (int64_t)gapvnodes / imax(desiredvnodes, 1); target = target / 10 + 1;