Date: Mon, 02 Feb 2026 07:39:58 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 292265] shm_create_largepage() does not appear to allocate large pages Message-ID: <bug-292265-227-o36XaEO9Y4@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-292265-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
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.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-292265-227-o36XaEO9Y4>
