git: kernel - refactor vm_page busy

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Oct 18 09:49:24 PDT 2017


commit bc0aa189232f6ec6bb245aef2b91ed26a1a72459
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Oct 17 23:25:24 2017 -0700

    kernel - refactor vm_page busy
    
    * Move PG_BUSY, PG_WANTED, PG_SBUSY, and PG_SWAPINPROG out of m->flags.
    
    * Add m->busy_count with PBUSY_LOCKED, PBUSY_WANTED, PBUSY_SWAPINPROG,
      and PBUSY_MASK (for the soft-busy count).
    
    * Add support for acquiring a soft-busy count without a hard-busy.
      This requires that there not already be a hard-busy.  The purpose
      of this is to allow a vm_page to be 'locked' in a shared manner
      via the soft-busy for situations where we only intend to read from
      it.

Summary of changes:
 sys/dev/drm/drm_vm.c        |   3 +-
 sys/dev/drm/i915/i915_gem.c |   6 +-
 sys/dev/drm/ttm/ttm_bo_vm.c |   2 +-
 sys/kern/vfs_bio.c          |   6 +-
 sys/kern/vfs_cluster.c      |   3 +-
 sys/vm/device_pager.c       |   4 +-
 sys/vm/swap_pager.c         |  46 +++++----
 sys/vm/vm_contig.c          |  21 ++--
 sys/vm/vm_fault.c           |  68 ++++++++++---
 sys/vm/vm_map.c             |   2 +-
 sys/vm/vm_mmap.c            |   3 +-
 sys/vm/vm_page.c            | 234 ++++++++++++++++++++++++++++----------------
 sys/vm/vm_page.h            | 102 +++++++------------
 sys/vm/vm_page2.h           |  32 +++++-
 sys/vm/vm_pageout.c         |   9 +-
 sys/vm/vm_swap.c            |   3 +-
 sys/vm/vm_swapcache.c       |   3 +-
 sys/vm/vnode_pager.c        |   4 +-
 18 files changed, 334 insertions(+), 217 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/bc0aa189232f6ec6bb245aef2b91ed26a1a72459


-- 
DragonFly BSD source repository



More information about the Commits mailing list