summaryrefslogtreecommitdiff
path: root/kern
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2012-09-23 00:25:13 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-09-23 00:28:40 +0200
commit9eacb0eab6eb8e35bb26ab3db660973fddf9e8fb (patch)
tree03d50c74d110f2bab3a8fb2ebac9eb7aca0313c4 /kern
parentf5f6f62357b90e1ce1eb24f2929314b0d84078d0 (diff)
Provide basic page cache statistics
* Makefrag.am (EXTRA_DIST): Add kern/gnumach.srv. (include_mach_HEADERS): Add include/mach/gnumach.defs and include/mach/vm_cache_statistics.h (nodist_libkernel_a_SOURCES): Add kern/gnumach.server.defs.c, kern/gnumach.server.h, kern/gnumach.server.c, kern/gnumach.server.msgids, kern/gnumach.server.defs. * include/mach/mach_types.h: Add #include <mach/vm_cache_statistics.h>. * kern/ipc_kobject.c (ipc_kobject_server): Declare and call gnumach_server_routine. * vm/vm_object.c (vm_object_cached_pages): New variable. (vm_object_cached_pages_lock_data): Likewise. (vm_object_deallocate): Update number of cached pages. (vm_object_lookup): Likewise. (vm_object_lookup_name): Likewise. (vm_object_destroy): Likewise. (vm_object_enter): Likewise. * vm/vm_object.h (ref_count): Declare as int. (resident_page_count): Likewise. (vm_object_cached_count): Add extern declaration. (vm_object_cached_pages): Likewise. (vm_object_cached_pages_lock_data): Likewise. (vm_object_cached_pages_update): New macro. * vm/vm_resident.c (vm_page_insert): Assert resident page count doesn't overflow, update number of cached pages as appropriate. (vm_page_replace): Likewise. (vm_page_remove): Update number of cached pages as appropriate. * vm/vm_user.c: Add #include <mach/vm_cache_statistics.h>. (vm_cache_statistics): New function. * vm/vm_user.h: Add #include <mach/mach_types.h>. (vm_cache_statistics): New declaration. * include/mach/gnumach.defs: New file.
Diffstat (limited to 'kern')
-rw-r--r--kern/ipc_kobject.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kern/ipc_kobject.c b/kern/ipc_kobject.c
index c922d7f..f094b73 100644
--- a/kern/ipc_kobject.c
+++ b/kern/ipc_kobject.c
@@ -152,6 +152,7 @@ ipc_kobject_server(request)
device_server_routine(),
device_pager_server_routine(),
mach4_server_routine();
+ gnumach_server_routine();
#if MACH_DEBUG
extern mig_routine_t mach_debug_server_routine();
#endif
@@ -170,6 +171,7 @@ ipc_kobject_server(request)
|| (routine = mach_debug_server_routine(&request->ikm_header)) != 0
#endif /* MACH_DEBUG */
|| (routine = mach4_server_routine(&request->ikm_header)) != 0
+ || (routine = gnumach_server_routine(&request->ikm_header)) != 0
#if MACH_MACHINE_ROUTINES
|| (routine = MACHINE_SERVER_ROUTINE(&request->ikm_header)) != 0
#endif /* MACH_MACHINE_ROUTINES */