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 c78fe96446794f71a2db7d7e3d43cb15658590a3 (commit) from ce50aa8ba8549d2cabfe9cfc9d324bd08d7430d6 (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 c78fe96446794f71a2db7d7e3d43cb15658590a3 Author: Richard Braun <rbr...@sceen.net> Date: Fri Sep 16 04:39:02 2016 +0200 VM: improve pageout deadlock workaround Commit 5dd4f67522ad0d49a2cecdb9b109251f546d4dd1 makes VM map entry allocation done with VM privilege, so that a VM map isn't held locked while physical allocations are paused, which may block the default pager during page eviction, causing a system-wide deadlock. First, it turns out that map entries aren't the only buffers allocated, and second, their number can't be easily determined, which makes a preallocation strategy very hard to implement. This change generalizes the strategy of VM privilege increase when a VM map is locked. * device/ds_routines.c (io_done_thread): Use integer values instead of booleans when setting VM privilege. * kern/thread.c (thread_init, thread_wire): Likewise. * vm/vm_pageout.c (vm_pageout): Likewise. * kern/thread.h (struct thread): Turn member `vm_privilege' into an unsigned integer. * vm/vm_map.c (vm_map_lock): New function, where VM privilege is temporarily increased. (vm_map_unlock): New function, where VM privilege is decreased. (_vm_map_entry_create): Remove VM privilege workaround from this function. * vm/vm_map.h (vm_map_lock, vm_map_unlock): Turn into functions. ----------------------------------------------------------------------- Summary of changes: device/ds_routines.c | 2 +- kern/thread.c | 6 ++--- kern/thread.h | 5 ++-- vm/vm_map.c | 63 ++++++++++++++++++++++++++++++++------------------ vm/vm_map.h | 8 ++----- vm/vm_pageout.c | 2 +- 6 files changed, 49 insertions(+), 37 deletions(-) hooks/post-receive -- GNU Mach