Page MenuHomeFreeBSD

D18764.id52609.diff
No OneTemporary

D18764.id52609.diff

Index: sys/vm/vm_mmap.c
===================================================================
--- sys/vm/vm_mmap.c
+++ sys/vm/vm_mmap.c
@@ -97,6 +97,9 @@
int old_mlock = 0;
SYSCTL_INT(_vm, OID_AUTO, old_mlock, CTLFLAG_RWTUN, &old_mlock, 0,
"Do not apply RLIMIT_MEMLOCK on mlockall");
+static int mincore_mapped = 1;
+SYSCTL_INT(_vm, OID_AUTO, mincore_mapped, CTLFLAG_RWTUN, &mincore_mapped, 0,
+ "mincore reports mappings, not residency");
#ifdef MAP_32BIT
#define MAP_32BIT_MAX_ADDR ((vm_offset_t)1 << 31)
@@ -808,7 +811,12 @@
retry:
m = NULL;
mincoreinfo = pmap_mincore(pmap, addr, &locked_pa);
- if (locked_pa != 0) {
+ if (mincore_mapped) {
+ if (locked_pa != 0) {
+ vm_page_unlock(PHYS_TO_VM_PAGE(
+ locked_pa));
+ }
+ } else if (locked_pa != 0) {
/*
* The page is mapped by this process but not
* both accessed and modified. It is also
@@ -857,7 +865,7 @@
mincoreinfo = MINCORE_INCORE;
}
}
- if (m != NULL) {
+ if (m != NULL && !mincore_mapped) {
/* Examine other mappings to the page. */
if (m->dirty == 0 && pmap_is_modified(m))
vm_page_dirty(m);

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 26, 3:25 PM (8 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28039215
Default Alt Text
D18764.id52609.diff (1 KB)

Event Timeline