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-7-g49547a4


From: Richard Braun
Subject: [SCM] GNU Mach branch, master, updated. v1.8-7-g49547a4
Date: Sat, 24 Dec 2016 01:52:11 +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  49547a4a10aa594c669dbf4199e2609f84e63a3c (commit)
       via  2b0f19f602e08fd9d37268233b962674fd592634 (commit)
       via  023401c5b97023670a44059a60eb2a3a11c8a929 (commit)
       via  eb07428ffb0009085fcd01dd1b79d9953af8e0ad (commit)
       via  1b8e67a0ff194c5d67fe22a918c2449c2d9ac150 (commit)
       via  1aa4ed6aaf69002b3bb7daed49cea8fa71536b66 (commit)
      from  11453089a1402932269b36f0b9f5831bcf888045 (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 49547a4a10aa594c669dbf4199e2609f84e63a3c
Author: Richard Braun <address@hidden>
Date:   Sat Dec 24 02:37:13 2016 +0100

    doc: update documentation about wiring
    
    * doc/mach.texi: Describe vm_wire_all, and add more information
    about vm_wire and vm_protect.

commit 2b0f19f602e08fd9d37268233b962674fd592634
Author: Richard Braun <address@hidden>
Date:   Sat Dec 24 02:31:34 2016 +0100

    VM: add the vm_wire_all call
    
    This call maps the POSIX mlockall and munlockall calls.
    
    * Makefrag.am (include_mach_HEADERS): Add include/mach/vm_wire.h.
    * include/mach/gnumach.defs (vm_wire_t): New type.
    (vm_wire_all): New routine.
    * include/mach/mach_types.h: Include mach/vm_wire.h.
    * vm/vm_map.c: Likewise.
    (vm_map_enter): Automatically wire new entries if requested.
    (vm_map_copyout): Likewise.
    (vm_map_pageable_all): New function.
    vm/vm_map.h: Include mach/vm_wire.h.
    (struct vm_map): Update description of member `wiring_required'.
    (vm_map_pageable_all): New function.
    * vm/vm_user.c (vm_wire_all): New function.

commit 023401c5b97023670a44059a60eb2a3a11c8a929
Author: Richard Braun <address@hidden>
Date:   Sat Dec 24 01:30:22 2016 +0100

    VM: rework map entry wiring
    
    First, user wiring is removed, simply because it has never been used.
    
    Second, make the VM system track wiring requests to better handle
    protection. This change makes it possible to wire entries with
    VM_PROT_NONE protection without actually reserving any page for
    them until protection changes, and even make those pages pageable
    if protection is downgraded to VM_PROT_NONE.
    
    * ddb/db_ext_symtab.c: Update call to vm_map_pageable.
    * i386/i386/user_ldt.c: Likewise.
    * ipc/mach_port.c: Likewise.
    * vm/vm_debug.c (mach_vm_region_info): Update values returned
    as appropriate.
    * vm/vm_map.c (vm_map_entry_copy): Update operation as appropriate.
    (vm_map_setup): Update member names as appropriate.
    (vm_map_find_entry): Update to account for map member variable changes.
    (vm_map_enter): Likewise.
    (vm_map_entry_inc_wired): New function.
    (vm_map_entry_reset_wired): Likewise.
    (vm_map_pageable_scan): Likewise.
    (vm_map_protect): Update wired access, call vm_map_pageable_scan.
    (vm_map_pageable_common): Rename to ...
    (vm_map_pageable): ... and rewrite to use vm_map_pageable_scan.
    (vm_map_entry_delete): Fix unwiring.
    (vm_map_copy_overwrite): Replace inline code with a call to
    vm_map_entry_reset_wired.
    (vm_map_copyin_page_list): Likewise.
    (vm_map_print): Likewise. Also print map size and wired size.
    (vm_map_copyout_page_list): Update to account for map member variable
    changes.
    * vm/vm_map.h (struct vm_map_entry): Remove `user_wired_count' member,
    add `wired_access' member.
    (struct vm_map): Rename `user_wired' member to `size_wired'.
    (vm_map_pageable_common): Remove function.
    (vm_map_pageable_user): Remove macro.
    (vm_map_pageable): Replace macro with function declaration.
    * vm/vm_user.c (vm_wire): Update call to vm_map_pageable.

commit eb07428ffb0009085fcd01dd1b79d9953af8e0ad
Author: Richard Braun <address@hidden>
Date:   Fri Dec 23 04:08:53 2016 +0100

    VM: fix pageout of external objects backed by the default pager
    
    Double paging on such objects causes deadlocks.
    
    * vm/vm_page.c: Include <vm/memory_object.h>.
    (vm_page_seg_evict): Rename laundry to double_paging to increase
    clarity. Set the `external_laundry' bit when evicting a page
    from an external object backed by the default pager.
    * vm/vm_pageout.c (vm_pageout_setup): Wire page if the
    `external_laundry' bit is set.

commit 1b8e67a0ff194c5d67fe22a918c2449c2d9ac150
Author: Richard Braun <address@hidden>
Date:   Sat Dec 24 00:06:09 2016 +0100

    VM: fix pageability check
    
    Unlike laundry pages sent to the default pager, pages marked with the
    `external_laundry' bit remain in the page queues and must be filtered
    out by the pageability check.
    
    * vm/vm_page.c (vm_page_can_move): Check the `external_laundry' bit.

commit 1aa4ed6aaf69002b3bb7daed49cea8fa71536b66
Author: Richard Braun <address@hidden>
Date:   Sat May 29 18:10:39 2032 +0200

    VM: fix mapping removal on wired pages
    
    Memory wiring is about to be reworked, at which point the VM system
    will properly track wired mappings. Removing them when changing
    protection makes sense, and is fine as long as the VM system
    rewires them when access is restored.
    
    * i386/intel/pmap.c (pmap_page_protect): Decrease wiring count instead
    of causing a panic when removing a wired mapping.

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

Summary of changes:
 Makefrag.am                                    |    1 +
 ddb/db_ext_symtab.c                            |    3 +-
 doc/mach.texi                                  |   41 ++
 i386/i386/user_ldt.c                           |    2 +-
 i386/intel/pmap.c                              |    6 +-
 include/mach/gnumach.defs                      |   15 +
 include/mach/mach_types.h                      |    1 +
 i386/i386/db_trace.h => include/mach/vm_wire.h |   22 +-
 ipc/mach_port.c                                |   12 +-
 vm/vm_debug.c                                  |    4 +-
 vm/vm_map.c                                    |  630 ++++++++++++++----------
 vm/vm_map.h                                    |   22 +-
 vm/vm_page.c                                   |   38 +-
 vm/vm_pageout.c                                |    9 +
 vm/vm_user.c                                   |   40 +-
 15 files changed, 531 insertions(+), 315 deletions(-)
 copy i386/i386/db_trace.h => include/mach/vm_wire.h (71%)


hooks/post-receive
-- 
GNU Mach



reply via email to

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