[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU Mach branch, rbraun/vm_page, created. v1.6-24-ge835160
From: |
Richard Braun |
Subject: |
[SCM] GNU Mach branch, rbraun/vm_page, created. v1.6-24-ge835160 |
Date: |
Sat, 23 Jan 2016 20:28:06 +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, rbraun/vm_page has been created
at e835160b6b95f3b904fbc429392a63be1e4ed6b8 (commit)
- Log -----------------------------------------------------------------
commit e835160b6b95f3b904fbc429392a63be1e4ed6b8
Author: Richard Braun <address@hidden>
Date: Sat Jan 23 19:52:24 2016 +0100
Use vm_page as the physical memory allocator
This change replaces the historical page allocator with a buddy allocator
implemented in vm/vm_page.c. This allocator allows easy contiguous
allocations
and also manages memory inside segments. In a future change, these segments
will be used to service requests with special constraints, such as "usable
for 16-bits DMA" or "must be part of the direct physical mapping".
* Makefrag.am (libkernel_a_SOURCES): Add vm/vm_page.c.
* i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386at/biosmem.{c,h}.
* i386/i386/vm_param.h: Include kern/macros.h.
(VM_PAGE_DMA_LIMIT, VM_PAGE_MAX_SEGS, VM_PAGE_DMA32_LIMIT,
VM_PAGE_DIRECTMAP_LIMIT, VM_PAGE_HIGHMEM_LIMIT, VM_PAGE_SEG_DMA,
VM_PAGE_SEG_DMA32, VM_PAGE_SEG_DIRECTMAP, VM_PAGE_SEG_HIGHMEM): New macros.
* i386/i386at/model_dep.c: Include i386at/biosmem.h.
(avail_next, avail_remaining): Remove variables.
(mem_size_init): Remove function.
(i386at_init): Initialize and use the biosmem module for early physical
memory management.
(pmap_free_pages): Return phys_last_addr instead of avail_remaining.
(init_alloc_aligned): Turn into a wrapper for biosmem_bootalloc.
(pmap_grab_page): Directly call init_alloc_aligned instead of
pmap_next_page.
* i386/include/mach/i386/vm_types.h (phys_addr_t): New type.
* kern/bootstrap.c (free_bootstrap_pages): New function.
(bootstrap_create): Call free_bootstrap_pages instead of vm_page_create.
* kern/cpu_number.h (CPU_L1_SIZE): New macro.
* kern/slab.h: Include kern/cpu_number.h.
(CPU_L1_SIZE): Remove macro, moved to kern/cpu_number.h.
* kern/startup.c (setup_main): Change the value of machine_info.memory_size.
* linux/dev/glue/glue.h (alloc_contig_mem, free_contig_mem): Update
prototypes.
* linux/dev/glue/kmem.c (linux_kmem_init): Don't use defunct page queue.
* linux/dev/init/main.c (linux_init): Don't free unused memory.
(alloc_contig_mem, free_contig_mem): Turn into wrappers for the vm_page
allocator.
* linux/pcmcia-cs/glue/ds.c (PAGE_SHIFT): Don't undefine.
* vm/pmap.h (pmap_startup, pmap_next_page): Remove prototypes.
* vm/vm_fault.c (vm_fault_page): Update calls to vm_page_convert.
* vm/vm_init.c (vm_mem_init): Call vm_page_info_all.
* vm/vm_object.c (vm_object_page_map): Update call to vm_page_init.
* vm/vm_page.h (vm_page_queue_free): Remove variable declaration.
(vm_page_create, vm_page_release_fictitious, vm_page_release): Remove
declarations.
(vm_page_convert, vm_page_init): Update prototypes.
(vm_page_grab_contig, vm_page_free_contig): New prototypes.
* vm/vm_resident.c (vm_page_template, vm_page_queue_free,
vm_page_big_pagenum): Remove variables.
(vm_page_bootstrap): Update and call vm_page_setup.
(pmap_steal_memory): Update and call vm_page_bootalloc.
(pmap_startup, vm_page_create, vm_page_grab_contiguous_pages): Remove
functions.
(vm_page_init_template, vm_page_grab_contig,
vm_page_free_contig): New functions.
(vm_page_init): Update and call vm_page_init_template.
(vm_page_release_fictitious): Make static.
(vm_page_more_fictitious): Update call to vm_page_init.
(vm_page_convert): Rewrite to comply with vm_page.
(vm_page_grab): Update and call vm_page_alloc_pa.
(vm_page_release): Update and call vm_page_free_pa.
commit 451b007174d87aae30872b1269fc922331665b9c
Author: Richard Braun <address@hidden>
Date: Sat Jan 23 19:48:42 2016 +0100
Import the vm_page module from X15 and relicense to GPLv2+
* vm/vm_page.c: New File.
* vm/vm_page.h: Merge vm_page.h from X15.
(struct vm_page): New members: node, type, seg_index, order,
vm_page_header. Turn phys_addr into a phys_addr_t.
commit d5628219e4ec8febf9a223c8190a4267d9bef342
Author: Richard Braun <address@hidden>
Date: Sat Jan 23 19:47:32 2016 +0100
Import the biosmem module from X15 and relicense to GPLv2+
* i386/i386at/biosmem.c: New file.
* i386/i386at/biosmem.h: Likewise.
commit 7dd0a77616ea1c1fda3fd60733b7c4c8990feb6a
Author: Richard Braun <address@hidden>
Date: Sat Jan 23 20:06:21 2016 +0100
Import the multiboot module from X15 and relicense to GPLv2+
* i386/include/mach/i386/multiboot.h: Merge multiboot.h from X15.
commit 375ef3da5441901886a274a5c7324341532f3ce7
Author: Richard Braun <address@hidden>
Date: Sat Jan 23 19:42:48 2016 +0100
Import the elf module from X15 and relicense to GPLv2+
* i386/i386at/elf.h: New file.
commit a36c6426dacf7e0d3e69fb3089a2423420ac9990
Author: Richard Braun <address@hidden>
Date: Sat Jan 23 19:42:01 2016 +0100
Import the log2 module from X15 and relicense to GPLv2+
* kern/log2.h: New file.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Mach
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Mach branch, rbraun/vm_page, created. v1.6-24-ge835160,
Richard Braun <=