From nobody Tue Oct 29 14:20:09 2024 X-Original-To: dev-commits-src-all@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 4XdC895x9mz5bW9T; Tue, 29 Oct 2024 14:20:09 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XdC8946Z7z4L6k; Tue, 29 Oct 2024 14:20:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1730211609; 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=z+7vQJXgMeyp/SnfaGX9StWxpXYs+4cv0sMGm87Cpl8=; b=IxPPCjo6KTkzCJoLqYbChjpllrqZhZfJVm44LpKCe2UVINR+dA5GocRCsJuaMuJJF20oX5 JRZgg8ec1qMrEYWbVcZyQsXT1Ko71Mu58dnmytQGVc6rCe75csT9MFznq1PHSqmsyvDXCI Phtz5RbDm+ube5Pz4R+HSvOSAaPH+lUIVvLmZE67CdgHHZ/IFuhVFMB0Qw0tzEU8jed9SV SNz8eKd6oZnhA1CW0UKCHLA5d9nqDRHkOv6Jx76nhK1XOSAqVGEmSY5B7PI85iEnSYKy3h gS9aoDXgTihSDHRo0AH7Ie0pRQkkDKAeh/FKRwtDtzzi50KTvFPrKDVFiqrIfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1730211609; 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=z+7vQJXgMeyp/SnfaGX9StWxpXYs+4cv0sMGm87Cpl8=; b=KOrYem7P/9t6nEfNQ4L2mitiV/rrwdvTJ24r+YDQIvNR2pXHdLV924qmyO+PlBJdYah0Ry huKqMZgMXaUotWxoJpvFgl1vfjo4AFyNomEEMC+F+EEaTxbfIdROPFVss/Y4vjJlAYl8mw UzqQ0MGKJTl0Gx9bqg976grKYNEhJwNK4KguKaSOAdVIdBHG6J0//xtOE2Rdi3QQGjb5vk 1fZMPV409if2kgwmXgtxt4Dz9QiGVA3NMRwutq7FTqnnrU3z2BmKJwsq0yK9MtDgMK66Oa 7g02ztXxaNqcT8uQTEv9qDbSz096J7b6QaovsjQw3lEUcnWisUgJvPAVW4HExA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1730211609; a=rsa-sha256; cv=none; b=aPiVQgcbEkaaUwnItIZgiwESO0QDD1BbsxVtZj5cUw3Y/gyf2ztC9T1GxrqKwb1qVwBwWp HuuF7vB2T3wCtPMdq1mp/Vwdmid0Yqbr+xuQ8V9ZLbiDCuG0lge6pa5mb/wo71flS04J7O 6Jd9or1CwZWivgQtImD16OFWCxUFPLc1Nwl2znkPdITQWAcosZ4NuvfVNMExXYCEGzkzgK G54QayfNEFO945jK+y297ATVEly5dMcITMIcZo9SDnHyPWQ157bp8jcN0AnRY7I8zIa8lJ JynhIEQIzxy9lA2/11X0u8jouK1ErOwL/9nd3jzxUgS1YjfbbKgbORkSekoLmQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4XdC893kjJzRMs; Tue, 29 Oct 2024 14:20:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 49TEK98g015113; Tue, 29 Oct 2024 14:20:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 49TEK951015103; Tue, 29 Oct 2024 14:20:09 GMT (envelope-from git) Date: Tue, 29 Oct 2024 14:20:09 GMT Message-Id: <202410291420.49TEK951015103@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: df515b2e22c7 - stable/13 - vm_meter: Fix laundry accounting List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: df515b2e22c79d857189f3ad7389b546c3428868 Auto-Submitted: auto-generated The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=df515b2e22c79d857189f3ad7389b546c3428868 commit df515b2e22c79d857189f3ad7389b546c3428868 Author: Mark Johnston AuthorDate: 2024-10-22 12:48:43 +0000 Commit: Mark Johnston CommitDate: 2024-10-29 13:34:45 +0000 vm_meter: Fix laundry accounting Pages in PQ_UNSWAPPABLE should be considered part of the laundry. Otherwise, on systems with no swap, the total amount of memory visible to tools like top(1) decreases. It doesn't seem very useful to have a dedicated counter for unswappable pages, and updating applications accordingly would be painful, so just lump them in with laundry for now. PR: 280846 Reviewed by: bnovkov, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D47216 (cherry picked from commit 6a07e67fb7a8b5687a492d9d70a10651d5933ff5) --- sys/vm/vm_meter.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/sys/vm/vm_meter.c b/sys/vm/vm_meter.c index 9170581eaec1..caa6b6aa4769 100644 --- a/sys/vm/vm_meter.c +++ b/sys/vm/vm_meter.c @@ -458,7 +458,8 @@ u_int vm_laundry_count(void) { - return (vm_pagequeue_count(PQ_LAUNDRY)); + return (vm_pagequeue_count(PQ_LAUNDRY) + + vm_pagequeue_count(PQ_UNSWAPPABLE)); } static int @@ -480,6 +481,18 @@ SYSCTL_PROC(_vm_stats_vm, OID_AUTO, v_pdpages, CTLTYPE_U64 | CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_vm_pdpages, "QU", "Pages analyzed by pagedaemon"); +static int +sysctl_vm_laundry_pages(SYSCTL_HANDLER_ARGS) +{ + struct vm_domain *vmd; + u_int ret; + + vmd = arg1; + ret = vmd->vmd_pagequeues[PQ_LAUNDRY].pq_cnt + + vmd->vmd_pagequeues[PQ_UNSWAPPABLE].pq_cnt; + return (SYSCTL_OUT(req, &ret, sizeof(ret))); +} + static void vm_domain_stats_init(struct vm_domain *vmd, struct sysctl_oid *parent) { @@ -506,8 +519,9 @@ vm_domain_stats_init(struct vm_domain *vmd, struct sysctl_oid *parent) "inactpdpgs", CTLFLAG_RD, &vmd->vmd_pagequeues[PQ_INACTIVE].pq_pdpages, 0, "Inactive pages scanned by the page daemon"); - SYSCTL_ADD_UINT(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, - "laundry", CTLFLAG_RD, &vmd->vmd_pagequeues[PQ_LAUNDRY].pq_cnt, 0, + SYSCTL_ADD_PROC(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, + "laundry", CTLFLAG_RD | CTLTYPE_UINT, vmd, 0, + sysctl_vm_laundry_pages, "IU", "laundry pages"); SYSCTL_ADD_U64(NULL, SYSCTL_CHILDREN(oid), OID_AUTO, "laundpdpgs", CTLFLAG_RD,