[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU Mach branch, master, updated. v1.8-9-g941d462
From: |
Richard Braun |
Subject: |
[SCM] GNU Mach branch, master, updated. v1.8-9-g941d462 |
Date: |
Tue, 27 Dec 2016 19:06:38 +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 941d462425fb2692fd9ffea1ab03e927697fcfb0 (commit)
from a926bb3a5bbd9cd5db6f1435d32312a5499ed62d (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 941d462425fb2692fd9ffea1ab03e927697fcfb0
Author: Richard Braun <address@hidden>
Date: Tue Dec 27 19:51:30 2016 +0100
VM: really fix pageout of external objects backed by the default pager
Commit eb07428ffb0009085fcd01dd1b79d9953af8e0ad does fix pageout of
external objects backed by the default pager, but the way it's done
has a vicious side effect: because they're considered external, the
pageout daemon can keep evicting them even though the external pagers
haven't released them, unlike internal pages which must all be
released before the pageout daemon can make progress. This can lead
to a situation where too many pages become wired, the default pager
cannot allocate memory to process new requests, and the pageout
daemon cannot recycle any more page, causing a panic.
This change makes the pageout daemon use the same strategy for both
internal pages and external pages sent to the default pager: use
the laundry bit and wait for all laundry pages to be released,
thereby completely synchronizing the pageout daemon and the default
pager.
* vm/vm_page.c (vm_page_can_move): Allow external laundry pages to
be moved.
(vm_page_seg_evict): Don't alter the `external_laundry' bit, merely
disable double paging for external pages sent to the default pager.
* vm/vm_pageout.c: Include vm/memory_object.h.
(vm_pageout_setup): Don't check whether the `external_laundry' bit
is set, but handle external pages sent to the default pager the same
as internal pages.
-----------------------------------------------------------------------
Summary of changes:
vm/vm_page.c | 22 +++++++---------------
vm/vm_pageout.c | 13 +++----------
2 files changed, 10 insertions(+), 25 deletions(-)
hooks/post-receive
--
GNU Mach
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Mach branch, master, updated. v1.8-9-g941d462,
Richard Braun <=