commit-hurd
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]