commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Mach branch, master, updated. v1.6-31-g5e9f6f5


From: Richard Braun
Subject: [SCM] GNU Mach branch, master, updated. v1.6-31-g5e9f6f5
Date: Tue, 02 Feb 2016 02:59:05 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mach".

The branch, master has been updated
       via  5e9f6f52451ccb768d875370bf1769b27ff0041c (commit)
      from  945f51bfe865e122d73986dd8219762450ffc0f3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 5e9f6f52451ccb768d875370bf1769b27ff0041c
Author: Richard Braun <address@hidden>
Date:   Tue Feb 2 03:30:34 2016 +0100

    Stack the slab allocator directly on top of the physical allocator
    
    In order to increase the amount of memory available for kernel objects,
    without reducing the amount of memory available for user processes,
    a new allocation strategy is introduced in this change.
    
    Instead of allocating kernel objects out of kernel virtual memory,
    the slab allocator directly uses the direct mapping of physical
    memory as its backend. This largely increases the kernel heap, and
    removes the need for address translation updates.
    
    In order to allow this strategy, an assumption made by the interrupt
    code had to be removed. In addition, kernel stacks are now also
    allocated directly from the physical allocator.
    
    * i386/i386/db_trace.c: Include i386at/model_dep.h
    (db_i386_reg_value): Update stack check.
    * i386/i386/locore.S (trap_from_kernel, all_intrs,
    int_from_intstack): Update interrupt handling.
    * i386/i386at/model_dep.c: Include kern/macros.h.
    (int_stack, int_stack_base): New variables.
    (int_stack_high): Remove variable.
    (i386at_init): Update interrupt stack initialization.
    * i386/i386at/model_dep.h: Include i386/vm_param.h.
    (int_stack_top, int_stack_base): New extern declarations.
    (ON_INT_STACK): New macro.
    * kern/slab.c: Include vm/vm_page.h
    (KMEM_CF_NO_CPU_POOL, KMEM_CF_NO_RECLAIM): Remove macros.
    (kmem_pagealloc, kmem_pagefree, kalloc_pagealloc, kalloc_pagefree): Remove
    functions.
    (kmem_slab_create): Allocate slab pages directly from the physical 
allocator.
    (kmem_slab_destroy): Release slab pages directly to the physical allocator.
    (kmem_cache_compute_sizes): Update the slab size computation algorithm to
    return a power-of-two suitable for the physical allocator.
    (kmem_cache_init): Remove custom allocation function pointers.
    (kmem_cache_reap): Remove check on KMEM_CF_NO_RECLAIM.
    (slab_init, kalloc_init): Update calls to kmem_cache_init.
    (kalloc, kfree): Directly fall back on the physical allocator for big
    allocation sizes.
    (host_slab_info): Remove checks on defunct flags.
    * kern/slab.h (kmem_slab_alloc_fn_t, kmem_slab_free_fn_t): Remove types.
    (struct kmem_cache): Add `slab_order' member, remove `slab_alloc_fn' and
    `slab_free_fn' members.
    (KMEM_CACHE_NOCPUPOOL, KMEM_CACHE_NORECLAIM): Remove macros.
    (kmem_cache_init): Update prototype, remove custom allocation functions.
    * kern/thread.c (stack_alloc): Allocate stacks from the physical allocator.
    * vm/vm_map.c (vm_map_kentry_cache, kentry_data, kentry_data_size): Remove
    variables.
    (kentry_pagealloc): Remove function.
    (vm_map_init): Update calls to kmem_cache_init, remove initialization of
    vm_map_kentry_cache.
    (vm_map_create, _vm_map_entry_dispose, vm_map_copyout): Unconditionnally
    use vm_map_entry_cache.
    * vm/vm_map.h (kentry_data, kentry_data_size, kentry_count): Remove extern
    declarations.
    * vm/vm_page.h (VM_PT_STACK): New page type.
    * device/dev_lookup.c (dev_lookup_init): Update calls to kmem_cache_init.
    * device/dev_pager.c (dev_pager_hash_init, device_pager_init): Likewise.
    * device/ds_routines.c (mach_device_init, mach_device_trap_init): Likewise.
    * device/net_io.c (net_io_init): Likewise.
    * i386/i386/fpu.c (fpu_module_init): Likewise.
    * i386/i386/machine_task.c (machine_task_module_init): Likewise.
    * i386/i386/pcb.c (pcb_module_init): Likewise.
    * i386/intel/pmap.c (pmap_init): Likewise.
    * ipc/ipc_init.c (ipc_bootstrap): Likewise.
    * ipc/ipc_marequest.c (ipc_marequest_init): Likewise.
    * kern/act.c (global_act_init): Likewise.
    * kern/processor.c (pset_sys_init): Likewise.
    * kern/rdxtree.c (rdxtree_cache_init): Likewise.
    * kern/task.c (task_init): Likewise.
    * vm/memory_object_proxy.c (memory_object_proxy_init): Likewise.
    * vm/vm_external.c (vm_external_module_initialize): Likewise.
    * vm/vm_fault.c (vm_fault_init): Likewise.
    * vm/vm_object.c (vm_object_bootstrap): Likewise.
    * vm/vm_resident.c (vm_page_module_init): Likewise.
    (vm_page_bootstrap): Remove initialization of kentry_data.

-----------------------------------------------------------------------

Summary of changes:
 device/dev_lookup.c      |    2 +-
 device/dev_pager.c       |    4 +-
 device/ds_routines.c     |    4 +-
 device/net_io.c          |    4 +-
 i386/i386/db_trace.c     |    4 +-
 i386/i386/fpu.c          |    2 +-
 i386/i386/locore.S       |   14 +++--
 i386/i386/machine_task.c |    2 +-
 i386/i386/pcb.c          |    2 +-
 i386/i386at/model_dep.c  |   17 ++----
 i386/i386at/model_dep.h  |    9 +++
 i386/intel/pmap.c        |    4 +-
 ipc/ipc_init.c           |    8 +-
 ipc/ipc_marequest.c      |    2 +-
 kern/act.c               |    2 +-
 kern/processor.c         |    2 +-
 kern/rdxtree.c           |    2 +-
 kern/slab.c              |  140 +++++++++++++++------------------------------
 kern/slab.h              |   23 ++------
 kern/task.c              |    2 +-
 kern/thread.c            |   14 +++--
 vm/memory_object_proxy.c |    2 +-
 vm/vm_external.c         |    6 +-
 vm/vm_fault.c            |    2 +-
 vm/vm_map.c              |   60 ++-----------------
 vm/vm_map.h              |    3 -
 vm/vm_object.c           |    2 +-
 vm/vm_page.h             |    3 +-
 vm/vm_resident.c         |    8 +--
 29 files changed, 124 insertions(+), 225 deletions(-)


hooks/post-receive
-- 
GNU Mach



reply via email to

[Prev in Thread] Current Thread [Next in Thread]