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 44d78061e90e777b51cae8e01eda5c0d3ce63103 (commit)
from 909167b9d05cf896f1e54122183ef8ee9ee70677 (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 44d78061e90e777b51cae8e01eda5c0d3ce63103
Author: Richard Braun <[email protected]>
Date: Tue Feb 2 23:17:20 2016 +0100
Fix various memory managment errors
A few errors were introduced in the latest changes.
o Add VM_PAGE_WAIT calls around physical allocation attempts in case of
memory exhaustion.
o Fix stack release.
o Fix memory exhaustion report.
o Fix free page accounting.
* kern/slab.c (kmem_pagealloc, kmem_pagefree): New functions
(kmem_slab_create, kmem_slab_destroy, kalloc, kfree): Use kmem_pagealloc
and kmem_pagefree instead of the raw page allocation functions.
(kmem_cache_compute_sizes): Don't store slab order.
* kern/slab.h (struct kmem_cache): Remove `slab_order' member.
* kern/thread.c (stack_alloc): Call VM_PAGE_WAIT in case of memory
exhaustion.
(stack_collect): Call vm_page_free_contig instead of kmem_free to
release pages.
* vm/vm_page.c (vm_page_seg_alloc): Fix memory exhaustion report.
(vm_page_setup): Don't update vm_page_free_count.
(vm_page_free_pa): Check page parameter.
(vm_page_mem_free): New function.
* vm/vm_page.h (vm_page_free_count): Remove extern declaration.
(vm_page_mem_free): New prototype.
* vm/vm_pageout.c: Update comments not to refer to vm_page_free_count.
(vm_pageout_scan, vm_pageout_continue, vm_pageout): Use vm_page_mem_free
instead of vm_page_free_count, update types accordingly.
* vm/vm_resident.c (vm_page_free_count, vm_page_free_count_minimum):
Remove variables.
(vm_page_free_avail): New variable.
(vm_page_bootstrap, vm_page_grab, vm_page_release, vm_page_grab_contig,
vm_page_free_contig, vm_page_wait): Use vm_page_mem_free instead of
vm_page_free_count,
update types accordingly, don't set vm_page_free_count_minimum.
* vm/vm_user.c (vm_statistics): Likewise.
-----------------------------------------------------------------------
Summary of changes:
kern/slab.c | 39 +++++++++++++++++++++++++++------------
kern/slab.h | 1 -
kern/thread.c | 28 +++++++++++++++++-----------
vm/vm_page.c | 27 +++++++++++++++++++++++----
vm/vm_page.h | 14 ++++++++++++--
vm/vm_pageout.c | 20 ++++++++++----------
vm/vm_resident.c | 45 +++++++++++++++++++--------------------------
vm/vm_user.c | 2 +-
8 files changed, 109 insertions(+), 67 deletions(-)
hooks/post-receive
--
GNU Mach