git: 1946484bcc15 - stable/12 - procstat: distinguish vm map guards in procstat vm output.

Konstantin Belousov kib at FreeBSD.org
Sun Feb 21 09:47:42 UTC 2021


The branch stable/12 has been updated by kib:

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

commit 1946484bcc156f69a08203aabfab61a15e53bf55
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:44:36 +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 5b7a663f0d62..239e5790f8dd 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -2457,7 +2457,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);
 
@@ -2528,6 +2528,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);
 
@@ -2602,7 +2604,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 75661257528b..78867fe418e4 100644
--- a/sys/sys/user.h
+++ b/sys/sys/user.h
@@ -459,6 +459,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 17da8648b714..e42931e6336c 100644
--- a/usr.bin/procstat/procstat.1
+++ b/usr.bin/procstat/procstat.1
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 14, 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-branches mailing list