[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU Mach branch, master, updated. v1.7-38-gc78fe96
From: |
Richard Braun |
Subject: |
[SCM] GNU Mach branch, master, updated. v1.7-38-gc78fe96 |
Date: |
Fri, 16 Sep 2016 02:58:48 +0000 (UTC) |
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 <address@hidden>
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Mach branch, master, updated. v1.7-38-gc78fe96,
Richard Braun <=