git: kernel - Simplify umtx_sleep and umtx_wakeup support

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Oct 16 11:30:37 PDT 2017


commit 31efdff0873efcd437dc814d7de1c4bf1fc1f61f
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Oct 15 10:54:59 2017 -0700

    kernel - Simplify umtx_sleep and umtx_wakeup support
    
    * Rip out the vm_page_action / vm_page_event() API.  This code was
      fairly SMP unfriendly and created serious bottlenecks with large
      threaded user programs using mutexes.
    
    * Replace with a simpler mechanism that simply wakes up any UMTX
      domain tsleeps after a fork().
    
    * Implement a 4uS spin loop in umtx_sleep() similar to what the
      pipe code does.

Summary of changes:
 sys/kern/kern_fork.c |  22 +++++++++
 sys/kern/kern_umtx.c |  97 +++++++++++++++++++++++++++----------
 sys/vm/vm_fault.c    |  15 +++---
 sys/vm/vm_page.c     | 133 ---------------------------------------------------
 sys/vm/vm_page.h     |  21 +-------
 sys/vm/vm_page2.h    |  18 -------
 6 files changed, 104 insertions(+), 202 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/31efdff0873efcd437dc814d7de1c4bf1fc1f61f


-- 
DragonFly BSD source repository



More information about the Commits mailing list