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.7-72-ga5ab72b


From: Richard Braun
Subject: [SCM] GNU Mach branch, master, updated. v1.7-72-ga5ab72b
Date: Thu, 1 Dec 2016 01:20:19 +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  a5ab72bc176e679e362c9c6125e3e3da954263e7 (commit)
      from  8a390043dd022d106f86b28ae85f606680e5ef51 (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 a5ab72bc176e679e362c9c6125e3e3da954263e7
Author: Richard Braun <address@hidden>
Date:   Wed May 12 03:15:41 2032 +0200

    VM: fix pageout throttling to external pagers
    
    Since the VM system has been tracking whether pages belong to internal
    or external objects, pageout throttling to external pagers has simply
    not been working. The reason is that, on pageout, requests for external
    pages are correctly tracked, but on page release (which is used to
    acknowledge the request), external pages are not marked external
    any more. This is because the external bit tracks whether a page
    belongs to an external object, and all pages, including external
    ones, are moved to an internal object during pageout.
    
    To solve this issue, a new "external_laundry" bit is added. It has
    the same purpose as the laundry bit, but for external pagers.
    
    * vm/vm_page.c (vm_page_seg_min_page_available): Function unused, remove.
    (vm_page_seg_evict): Use vm_page_external_laundry_count instead of
    vm_page_external_pagedout. Add an assertion about double paging.
    (vm_page_check_usable): Use vm_page_external_laundry_count instead of
    vm_page_external_pagedout.
    (vm_page_evict): Likewise.
    * vm/vm_page.h (struct vm_page): New `external_laundry' member.
    (vm_page_external_pagedout): Rename to ...
    (vm_page_external_laundry_count): ... this.
    * vm/vm_pageout.c: Include kern/printf.h.
    (DEBUG): New macro.
    (VM_PAGEOUT_TIMEOUT): Likewise.
    (vm_pageout_setup): Use vm_page_external_laundry_count instead of
    vm_page_external_pagedout. Set `external_laundry' where appropriate.
    (vm_pageout): Use VM_PAGEOUT_TIMEOUT with thread_set_timeout.
    Add debugging code, commented out by default.
    * vm/vm_resident.c (vm_page_external_pagedout): Rename to ...
    (vm_page_external_laundry_count): ... this.
    (vm_page_init_template): Set `external_laundry' member to FALSE.
    (vm_page_release): Rename external parameter to external_laundry.
    Slightly change pageout resuming.
    (vm_page_free): Rename external variable to external_laundry.

-----------------------------------------------------------------------

Summary of changes:
 vm/vm_page.c     |   14 +++++---------
 vm/vm_page.h     |    3 ++-
 vm/vm_pageout.c  |   30 +++++++++++++++++++++++++-----
 vm/vm_resident.c |   23 ++++++++++++-----------
 4 files changed, 44 insertions(+), 26 deletions(-)


hooks/post-receive
-- 
GNU Mach



reply via email to

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