From db2078e4f1802434f791f4f1c333725c42fe172b Mon Sep 17 00:00:00 2001 From: Richard Braun Date: Sat, 17 Dec 2011 15:24:05 +0000 Subject: Adjust the kernel to use the slab allocator * device/dev_lookup.c: Replace zalloc header, types and function calls with their slab counterparts. * device/dev_pager.c: Likewise. * device/ds_routines.c: Likewise. * device/io_req.h: Likewise. * device/net_io.c: Likewise. * i386/i386/fpu.c: Likewise. * i386/i386/io_perm.c: Likewise. * i386/i386/machine_task.c: Likewise. * i386/i386/pcb.c: Likewise. * i386/i386/task.h: Likewise. * i386/intel/pmap.c: Likewise. * i386/intel/pmap.h: Remove #include . * include/mach_debug/mach_debug.defs (host_zone_info): Replace routine declaration with skip directive. (host_slab_info): New routine declaration. * include/mach_debug/mach_debug_types.defs (zone_name_t) (zone_name_array_t, zone_info_t, zone_info_array_t): Remove types. (cache_info_t, cache_info_array_t): New types. * include/mach_debug/mach_debug_types.h: Replace #include with . * ipc/ipc_entry.c: Replace zalloc header, types and function calls with their slab counterparts. * ipc/ipc_entry.h: Likewise. * ipc/ipc_init.c: Likewise. * ipc/ipc_marequest.c: Likewise. * ipc/ipc_object.c: Likewise. * ipc/ipc_object.h: Likewise. * ipc/ipc_space.c: Likewise. * ipc/ipc_space.h: Likewise. * ipc/ipc_table.c (kalloc_map): Remove extern declaration. * kern/act.c: Replace zalloc header, types and function calls with their slab counterparts. * kern/kalloc.h: Add #include . (MINSIZE): Remove definition. (kalloc_map): Add extern declaration. (kget): Remove prototype. * kern/mach_clock.c: Adjust comment. * kern/processor.c: Replace zalloc header, types and function calls with their slab counterparts. * kern/startup.c: Remove #include . * kern/task.c: Replace zalloc header, types and function calls with their slab counterparts. * kern/thread.c: Likewise. * vm/memory_object_proxy.c: Likewise. * vm/vm_external.c: Likewise. * vm/vm_fault.c: Likewise. * vm/vm_init.c: Likewise. * vm/vm_map.c: Likewise. * vm/vm_object.c: Likewise. * vm/vm_page.h: Remove #include . * vm/vm_pageout.c: Replace zalloc header, types and function calls with their slab counterparts. * vm/vm_resident.c: Likewise. (zdata, zdata_size): Remove declarations. (vm_page_bootstrap): Don't steal memory for the zone system. --- kern/processor.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'kern/processor.c') diff --git a/kern/processor.c b/kern/processor.c index 718ff3ad..3ece3412 100644 --- a/kern/processor.c +++ b/kern/processor.c @@ -46,8 +46,8 @@ #include #if MACH_HOST -#include -zone_t pset_zone; +#include +struct kmem_cache pset_cache; #endif /* MACH_HOST */ @@ -112,10 +112,10 @@ void pset_sys_init(void) register processor_t processor; /* - * Allocate the zone for processor sets. + * Allocate the cache for processor sets. */ - pset_zone = zinit(sizeof(struct processor_set), 0, 128*PAGE_SIZE, - PAGE_SIZE, 0, "processor sets"); + kmem_cache_init(&pset_cache, "processor_set", + sizeof(struct processor_set), 0, NULL, NULL, NULL, 0); /* * Give each processor a control port. @@ -394,7 +394,7 @@ void pset_deallocate( /* * That's it, free data structure. */ - zfree(pset_zone, (vm_offset_t)pset); + kmem_cache_free(&pset_cache, (vm_offset_t)pset); #endif /* MACH_HOST */ } @@ -538,7 +538,7 @@ processor_set_create( if (host == HOST_NULL) return KERN_INVALID_ARGUMENT; - pset = (processor_set_t) zalloc(pset_zone); + pset = (processor_set_t) kmem_cache_alloc(&pset_cache); pset_init(pset); pset_reference(pset); /* for new_set out argument */ pset_reference(pset); /* for new_name out argument */ -- cgit v1.2.3 From 5988ae8fb41ace936e48e5a972abe1c5acc8f8af Mon Sep 17 00:00:00 2001 From: Richard Braun Date: Sat, 17 Dec 2011 15:54:47 +0000 Subject: Fix kern/kalloc.h includes * device/dev_pager.c: Remove #include . * i386/i386/io_perm.c: Add #include . * kern/bootstrap.c: Likewise. * kern/ipc_tt.c: Likewise. * kern/pc_sample.c: Likewise. * kern/processor.c: Likewise. * kern/server_loop.ch: Likewise. * kern/thread.c: Likewise. * linux/dev/glue/block.c: Likewise. * linux/dev/glue/net.c: Likewise. * vm/vm_map.c: Likewise. * xen/block.c: Likewise. * xen/net.c: Likewise. * xen/store.c: Likewise. --- device/dev_pager.c | 1 - i386/i386/io_perm.c | 1 + kern/bootstrap.c | 1 + kern/ipc_tt.c | 1 + kern/pc_sample.c | 1 + kern/processor.c | 1 + kern/server_loop.ch | 1 + kern/thread.c | 1 + linux/dev/glue/block.c | 2 ++ linux/dev/glue/net.c | 1 + vm/vm_map.c | 1 + xen/block.c | 1 + xen/net.c | 1 + xen/store.c | 1 + 14 files changed, 14 insertions(+), 1 deletion(-) (limited to 'kern/processor.c') diff --git a/device/dev_pager.c b/device/dev_pager.c index dc5ba732..bc58a155 100644 --- a/device/dev_pager.c +++ b/device/dev_pager.c @@ -45,7 +45,6 @@ #include #include #include -#include #include #include diff --git a/i386/i386/io_perm.c b/i386/i386/io_perm.c index 7dcb8581..8bacb8d5 100644 --- a/i386/i386/io_perm.c +++ b/i386/i386/io_perm.c @@ -55,6 +55,7 @@ #include #include +#include #include #include #include diff --git a/kern/bootstrap.c b/kern/bootstrap.c index 2c63df40..68f40b4f 100644 --- a/kern/bootstrap.c +++ b/kern/bootstrap.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include diff --git a/kern/ipc_tt.c b/kern/ipc_tt.c index de4edc65..6d32e5b0 100644 --- a/kern/ipc_tt.c +++ b/kern/ipc_tt.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include diff --git a/kern/pc_sample.c b/kern/pc_sample.c index c82707b2..2cec907b 100644 --- a/kern/pc_sample.c +++ b/kern/pc_sample.c @@ -31,6 +31,7 @@ #include /* pointer_t */ #include #include +#include #include #include #include diff --git a/kern/processor.c b/kern/processor.c index 3ece3412..19868609 100644 --- a/kern/processor.c +++ b/kern/processor.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include diff --git a/kern/server_loop.ch b/kern/server_loop.ch index 1aa7edbc..409e013d 100644 --- a/kern/server_loop.ch +++ b/kern/server_loop.ch @@ -39,6 +39,7 @@ */ #include +#include #include #include #include /* for kernel_map */ diff --git a/kern/thread.c b/kern/thread.c index f23af581..0a59f076 100644 --- a/kern/thread.c +++ b/kern/thread.c @@ -54,6 +54,7 @@ #include #include #include +#include #include #include #include diff --git a/linux/dev/glue/block.c b/linux/dev/glue/block.c index 0c76d3d6..c7b38730 100644 --- a/linux/dev/glue/block.c +++ b/linux/dev/glue/block.c @@ -49,6 +49,8 @@ #include #include +#include + #include #include diff --git a/linux/dev/glue/net.c b/linux/dev/glue/net.c index 91ebf969..a60275fc 100644 --- a/linux/dev/glue/net.c +++ b/linux/dev/glue/net.c @@ -69,6 +69,7 @@ #include #include +#include #include #include diff --git a/vm/vm_map.c b/vm/vm_map.c index 5015c1cd..de10eecf 100644 --- a/vm/vm_map.c +++ b/vm/vm_map.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include diff --git a/xen/block.c b/xen/block.c index 02d410fb..fb18b67e 100644 --- a/xen/block.c +++ b/xen/block.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include diff --git a/xen/net.c b/xen/net.c index 27898288..8373cec0 100644 --- a/xen/net.c +++ b/xen/net.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include diff --git a/xen/store.c b/xen/store.c index 94d0ae45..8796bb59 100644 --- a/xen/store.c +++ b/xen/store.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3