kernel -- vm_object locking Part 1: Primitives
authorVenkatesh Srinivas <me@endeavour.zapto.org>
Fri, 4 Mar 2011 07:07:47 +0000 (23:07 -0800)
committerVenkatesh Srinivas <me@endeavour.zapto.org>
Fri, 4 Mar 2011 07:07:47 +0000 (23:07 -0800)
commite1c14c82961b940b20c922f9eda5ad5af13848a4
treed8e00859799acc91da37c29efa73ce0eb8524e72
parent88be9cd14ecda07101964c1158660f5b13addd28
kernel -- vm_object locking Part 1: Primitives

   * Create per-vm_object 'hold count'; the hold count ensures that a
     vm_object is not deallocated or collapsed till it transitions 1->0.
     Hold count is waited for in vm_object_terminate and _collapse.

   * Convert vm_object_lock/_unlock to use pool tokens; pool tokens do not
     share storage with the vm_object, simplifying lifetime.

Cleanups:

   * Remove first attempts at vm_object locking; it just wasn't clear
     what each token was protecting earlier.

   * Eliminate vestigial fields from vm_object structure.

   * Clean vm_object_pip_wakeup (just call _wakeupn)

   * Remove vm_page_(un)lock for now

Discussed-with: dillon@
sys/vm/vm_kern.c
sys/vm/vm_map.c
sys/vm/vm_object.c
sys/vm/vm_object.h
sys/vm/vm_page.c
sys/vm/vm_page.h