git: ee5ddf4296ad - stable/13 - procstat: distinguish vm map guards in procstat vm output.

Konstantin Belousov kib at FreeBSD.org
Sun Feb 21 09:43:04 UTC 2021


The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=ee5ddf4296ada4cac7f60cfb9517f01a87628a62

commit ee5ddf4296ada4cac7f60cfb9517f01a87628a62
Author:     Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-02-14 00:37:24 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-02-21 09:11:34 +0000

    procstat: distinguish vm map guards in procstat vm output.
    
    (cherry picked from commit 25c6318c7906f6f4e0c66ce16f81bdb830ba2e3b)
---
 sys/kern/kern_proc.c           | 7 +++++--
 sys/sys/user.h                 | 1 +
 usr.bin/procstat/procstat.1    | 4 +++-
 usr.bin/procstat/procstat_vm.c | 4 ++++
 4 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 305bc7e8a2ef..f8fed2573712 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -2514,7 +2514,7 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags)
 	vm_offset_t addr;
 	unsigned int last_timestamp;
 	int error;
-	bool super;
+	bool guard, super;
 
 	PROC_LOCK_ASSERT(p, MA_OWNED);
 
@@ -2584,6 +2584,8 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags)
 		if (entry->eflags & MAP_ENTRY_USER_WIRED)
 			kve->kve_flags |= KVME_FLAG_USER_WIRED;
 
+		guard = (entry->eflags & MAP_ENTRY_GUARD) != 0;
+
 		last_timestamp = map->timestamp;
 		vm_map_unlock_read(map);
 
@@ -2620,7 +2622,8 @@ kern_proc_vmmap_out(struct proc *p, struct sbuf *sb, ssize_t maxlen, int flags)
 				vput(vp);
 			}
 		} else {
-			kve->kve_type = KVME_TYPE_NONE;
+			kve->kve_type = guard ? KVME_TYPE_GUARD :
+			    KVME_TYPE_NONE;
 			kve->kve_ref_count = 0;
 			kve->kve_shadow_count = 0;
 		}
diff --git a/sys/sys/user.h b/sys/sys/user.h
index f60d73b77f3e..f882e7dcd699 100644
--- a/sys/sys/user.h
+++ b/sys/sys/user.h
@@ -465,6 +465,7 @@ struct kinfo_file {
 #define	KVME_TYPE_DEAD		6
 #define	KVME_TYPE_SG		7
 #define	KVME_TYPE_MGTDEVICE	8
+#define	KVME_TYPE_GUARD		9
 #define	KVME_TYPE_UNKNOWN	255
 
 #define	KVME_PROT_READ		0x00000001
diff --git a/usr.bin/procstat/procstat.1 b/usr.bin/procstat/procstat.1
index 1ce0b796beb4..affe69ffb615 100644
--- a/usr.bin/procstat/procstat.1
+++ b/usr.bin/procstat/procstat.1
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 24, 2020
+.Dd February 13, 2021
 .Dt PROCSTAT 1
 .Os
 .Sh NAME
@@ -674,6 +674,8 @@ scatter/gather
 swap
 .It vn
 vnode
+.It gd
+guard (pseudo-type)
 .El
 .Pp
 The following mapping flags may be displayed:
diff --git a/usr.bin/procstat/procstat_vm.c b/usr.bin/procstat/procstat_vm.c
index 13a4e1cf03af..7d698fefdc30 100644
--- a/usr.bin/procstat/procstat_vm.c
+++ b/usr.bin/procstat/procstat_vm.c
@@ -155,6 +155,10 @@ procstat_vm(struct procstat *procstat, struct kinfo_proc *kipp)
 			str = "md";
 			lstr = "managed_device";
 			break;
+		case KVME_TYPE_GUARD:
+			str = "gd";
+			lstr = "guard";
+			break;
 		case KVME_TYPE_UNKNOWN:
 		default:
 			str = "??";


More information about the dev-commits-src-all mailing list