git: 5ac0e08ef609 - stable/13 - vm.objects_swap: disable reporting some information
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 01 Nov 2021 00:45:58 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5ac0e08ef6099a8a20d534fef884ee8ee32b2dbf commit 5ac0e08ef6099a8a20d534fef884ee8ee32b2dbf Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2021-07-13 10:34:31 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2021-11-01 00:44:51 +0000 vm.objects_swap: disable reporting some information (cherry picked from commit 7738118e9a298a205b37c256245fd8449acccb0c) --- sys/vm/vm_object.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index addcf5f2c686..9462e8753afb 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -2526,20 +2526,22 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) kvo->kvo_memattr = obj->memattr; kvo->kvo_active = 0; kvo->kvo_inactive = 0; - TAILQ_FOREACH(m, &obj->memq, listq) { - /* - * A page may belong to the object but be - * dequeued and set to PQ_NONE while the - * object lock is not held. This makes the - * reads of m->queue below racy, and we do not - * count pages set to PQ_NONE. However, this - * sysctl is only meant to give an - * approximation of the system anyway. - */ - if (m->a.queue == PQ_ACTIVE) - kvo->kvo_active++; - else if (m->a.queue == PQ_INACTIVE) - kvo->kvo_inactive++; + if (!swap_only) { + TAILQ_FOREACH(m, &obj->memq, listq) { + /* + * A page may belong to the object but be + * dequeued and set to PQ_NONE while the + * object lock is not held. This makes the + * reads of m->queue below racy, and we do not + * count pages set to PQ_NONE. However, this + * sysctl is only meant to give an + * approximation of the system anyway. + */ + if (m->a.queue == PQ_ACTIVE) + kvo->kvo_active++; + else if (m->a.queue == PQ_INACTIVE) + kvo->kvo_inactive++; + } } kvo->kvo_vn_fileid = 0; @@ -2547,7 +2549,8 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only) kvo->kvo_vn_fsid_freebsd11 = 0; freepath = NULL; fullpath = ""; - kvo->kvo_type = vm_object_kvme_type(obj, &vp); + vp = NULL; + kvo->kvo_type = vm_object_kvme_type(obj, swap_only ? NULL : &vp); if (vp != NULL) { vref(vp); } else if ((obj->flags & OBJ_ANON) != 0) {