svn commit: r229707 - in stable/9/sys: kern sys
Mikolaj Golub
trociny at FreeBSD.org
Fri Jan 6 16:54:17 UTC 2012
Author: trociny
Date: Fri Jan 6 16:54:16 2012
New Revision: 229707
URL: http://svn.freebsd.org/changeset/base/229707
Log:
MFC r227316:
Add KVME_FLAG_SUPER and use it in sysctl_kern_proc_vmmap for marking
entries with superpages.
Submitted by: Mel Flynn <mel.flynn+fbsd.hackers at mailing.thruhere.net>
Reviewed by: alc, rwatson
Modified:
stable/9/sys/kern/kern_proc.c
stable/9/sys/sys/user.h
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/kern/kern_proc.c
==============================================================================
--- stable/9/sys/kern/kern_proc.c Fri Jan 6 16:46:52 2012 (r229706)
+++ stable/9/sys/kern/kern_proc.c Fri Jan 6 16:54:16 2012 (r229707)
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/loginclass.h>
#include <sys/malloc.h>
+#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/mutex.h>
#include <sys/proc.h>
@@ -75,6 +76,7 @@ __FBSDID("$FreeBSD$");
#include <vm/pmap.h>
#include <vm/vm_map.h>
#include <vm/vm_object.h>
+#include <vm/vm_page.h>
#include <vm/uma.h>
#ifdef COMPAT_FREEBSD32
@@ -1710,7 +1712,8 @@ sysctl_kern_proc_vmmap(SYSCTL_HANDLER_AR
entry = entry->next) {
vm_object_t obj, tobj, lobj;
vm_offset_t addr;
- int vfslocked;
+ vm_paddr_t locked_pa;
+ int vfslocked, mincoreinfo;
if (entry->eflags & MAP_ENTRY_IS_SUB_MAP)
continue;
@@ -1728,8 +1731,14 @@ sysctl_kern_proc_vmmap(SYSCTL_HANDLER_AR
kve->kve_resident = 0;
addr = entry->start;
while (addr < entry->end) {
- if (pmap_extract(map->pmap, addr))
+ locked_pa = 0;
+ mincoreinfo = pmap_mincore(map->pmap, addr, &locked_pa);
+ if (locked_pa != 0)
+ vm_page_unlock(PHYS_TO_VM_PAGE(locked_pa));
+ if (mincoreinfo & MINCORE_INCORE)
kve->kve_resident++;
+ if (mincoreinfo & MINCORE_SUPER)
+ kve->kve_flags |= KVME_FLAG_SUPER;
addr += PAGE_SIZE;
}
Modified: stable/9/sys/sys/user.h
==============================================================================
--- stable/9/sys/sys/user.h Fri Jan 6 16:46:52 2012 (r229706)
+++ stable/9/sys/sys/user.h Fri Jan 6 16:54:16 2012 (r229707)
@@ -412,6 +412,7 @@ struct kinfo_file {
#define KVME_FLAG_COW 0x00000001
#define KVME_FLAG_NEEDS_COPY 0x00000002
#define KVME_FLAG_NOCOREDUMP 0x00000004
+#define KVME_FLAG_SUPER 0x00000008
#if defined(__amd64__)
#define KINFO_OVMENTRY_SIZE 1168
More information about the svn-src-stable-9
mailing list