[Bug 292265] shm_create_largepage() does not appear to allocate large pages
Date: Mon, 02 Feb 2026 07:39:58 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292265
--- Comment #12 from Stefan Roesch <shr@devkernel.io> ---
I can see the following call sequence:
procstat
-> calls proctstat_getvmmap and checks KVME_FLAG_SUPER
-> calls kinfo_getvmmap
-> sysctl kern.proc.vmmap
The flag KVME_FLAG_SUPER is set in sys/kern/kern_proc.c in the
function kern_proc_vmmap_out().
-> calls kern_proc_vmmap_resident()
sets super flag based on the super parameter
-> calls pmap_mincore() + does some other checks
and checks if MINCORE_SUPER is set
It doesn't set MINCORE_SUPER directly, but instead uses
MINCORE_PSIND(i)› (((i) << MINCORE_PSIND_SHIFT) & MINCORE_SUPER)
There are two cases
- We have a PDP and its valid and page size is 2M
MINCORE_PSIND(2) ==> (2 << 5) & 0x60
1000000
1100000
->1000000
- We have PD and its valid and pagesize is 2M
MINCORE_PSIND(1) ==> (1 << 5) & 0x60
100000
1100000
0100000
If I use a dtrace script, I can see that kern_proc_vmmap_resident gets
called. However, pmap_mincore() gets never called. There are 3
conditions:
- m->psind
- addr + pagesizes[1] <= entry->end
- (addr & (pagesize[1] - 1)) == 0
Needs further debugging to determine which of the conditions fails.
--
You are receiving this mail because:
You are the assignee for the bug.