git: libc - Implement sigblockall() and sigunblockall() (2)

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Nov 12 00:12:32 PST 2019


commit 4aa6d05c7b9c6f3ba9ca9286bc46f7e51679b9b3
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Nov 11 21:38:33 2019 -0800

    libc - Implement sigblockall() and sigunblockall() (2)
    
    * Cleanup the logic a bit.  Store the lwp or proc pointer
      in the vm_map_backing structure and make vm_map_fork()
      and friends more aware of it.
    
    * Rearrange lwp allocation in [v]fork() to make the pointer(s)
      available to vm_fork().
    
    * Put the thread mappings on the lwp's list immediately rather
      than waiting for the first fault, which means that per-thread
      mappings will be deterministically removed on thread exit
      whether any faults happened or not.
    
    * Adjust vmspace_fork*() functions to not propagate 'dead' lwp
      mappings for threads that won't exist in the forked process.
      Only the lwp mappings for the thread doing the [v]fork() is
      retained.

Summary of changes:
 sys/kern/imgact_resident.c  |   2 +-
 sys/kern/kern_fork.c        |   4 +-
 sys/kern/kern_memio.c       | 142 ++++++++++++++++++--------------------------
 sys/kern/kern_proc.c        |   2 -
 sys/platform/pc64/vmm/vmx.c |   2 +-
 sys/vm/vm_extern.h          |   5 +-
 sys/vm/vm_glue.c            |  27 ++++++---
 sys/vm/vm_map.c             | 131 ++++++++++++++++++++++++++++++++--------
 sys/vm/vm_map.h             |   1 -
 9 files changed, 191 insertions(+), 125 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4aa6d05c7b9c6f3ba9ca9286bc46f7e51679b9b3


-- 
DragonFly BSD source repository


More information about the Commits mailing list