diff --git a/lib/libc/sys/mincore.2 b/lib/libc/sys/mincore.2 index 6a7bd549bd62..6c0fc670ef24 100644 --- a/lib/libc/sys/mincore.2 +++ b/lib/libc/sys/mincore.2 @@ -72,6 +72,8 @@ Page has been modified by us. Page has been referenced. .It Dv MINCORE_MODIFIED_OTHER Page has been modified. +.It Dv MINCORE_SUPER +Page is part of a "super" page. (only i386 & amd64) .El .Pp The information returned by diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 025a1413be05..dd5c87d9ee86 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -4371,6 +4371,7 @@ pmap_mincore(pmap_t pmap, vm_offset_t addr) if (pdep != NULL && (*pdep & PG_V)) { if (*pdep & PG_PS) { pte = *pdep; + val = MINCORE_SUPER; /* Compute the physical address of the 4KB page. */ pa = ((*pdep & PG_PS_FRAME) | (addr & PDRMASK)) & PG_FRAME; @@ -4385,7 +4386,7 @@ pmap_mincore(pmap_t pmap, vm_offset_t addr) PMAP_UNLOCK(pmap); if (pte != 0) { - val = MINCORE_INCORE; + val |= MINCORE_INCORE; if ((pte & PG_MANAGED) == 0) return val; diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 98a2fdf67496..c103ca604f55 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -4481,6 +4481,7 @@ pmap_mincore(pmap_t pmap, vm_offset_t addr) if (*pdep != 0) { if (*pdep & PG_PS) { pte = *pdep; + val = MINCORE_SUPER: /* Compute the physical address of the 4KB page. */ pa = ((*pdep & PG_PS_FRAME) | (addr & PDRMASK)) & PG_FRAME; @@ -4497,7 +4498,7 @@ pmap_mincore(pmap_t pmap, vm_offset_t addr) PMAP_UNLOCK(pmap); if (pte != 0) { - val = MINCORE_INCORE; + val |= MINCORE_INCORE; if ((pte & PG_MANAGED) == 0) return val; diff --git a/sys/sys/mman.h b/sys/sys/mman.h index c6b8d42d544b..6a963c9228cb 100644 --- a/sys/sys/mman.h +++ b/sys/sys/mman.h @@ -139,6 +139,7 @@ #define MINCORE_MODIFIED 0x4 /* Page has been modified by us */ #define MINCORE_REFERENCED_OTHER 0x8 /* Page has been referenced */ #define MINCORE_MODIFIED_OTHER 0x10 /* Page has been modified */ +#define MINCORE_SUPER 0x20 /* Page is a "super" page */ /* * Anonymous object constant for shm_open().