The branch main has been updated by kib:

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

commit 25c6318c7906f6f4e0c66ce16f81bdb830ba2e3b
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2021-02-14 00:37:24 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2021-02-14 01:24:58 +0000

    procstat: distinguish vm map guards in procstat vm output.
    
    Requested and reviewed by:      rwatson (previous version)
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D28658
---
 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 = "??";
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to