git: kernel - Optimize vm_page_wakeup(), vm_page_hold(), vm_page_unhold()

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Mar 26 22:32:06 PDT 2019


commit 16b1cc2d7d7a49c5814426aec69bdb2191cd8d20
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Mar 23 14:11:42 2019 -0700

    kernel - Optimize vm_page_wakeup(), vm_page_hold(), vm_page_unhold()
    
    * vm_page_wakeup() does not need to acquire the vm_page spin-lock.
      The caller holding the page busied is sufficient.
    
    * vm_page_hold() does not need to acquire the vm_page spin-lock as
      the caller is expected to hold the page busied, soft-busied,
      or stabilized via an interlock (such as the vm_object interlock).
    
    * vm_page_unhold() only needs to acquire the vm_page spin-lock on
      the 1->0 transition of m->hold_count.

Summary of changes:
 sys/vm/vm_page.c    | 119 +++++++++++++++++++++++-----------------------------
 sys/vm/vm_pageout.c |  10 ++---
 2 files changed, 57 insertions(+), 72 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/16b1cc2d7d7a49c5814426aec69bdb2191cd8d20


-- 
DragonFly BSD source repository



More information about the Commits mailing list