Sync with head.
Pull in the initial set of changes for the vmlocking branch.
Eliminate a needless test.
idlezero: don't grab the kernel lock.
Acquire the kernel lock in the VOP_* wrappers and the socket ops.
GC the simplelock/spinlock debugging stuff.
- Replace more simple_locks, and fix up in a few places.
- Use condition variables.
- LOCK_ASSERT -> KASSERT.
- Put a lock around the proc's CWD info (work in progress).
- Replace some more simplelocks.
- Make lbolt a condvar.
- Remove debugging crud.
- wakeup -> cv_broadcast.
Revert accidental change.
Don't kmem_free() kernel stack.
brelse: clear the buffer structure after BUF_DESTROY.
- Don't call copyout with bqueue_lock held.
- Eliminate last uses of splbio/splx.
- Fix some comments.
- Wrap some long lines.
Add some lock assertions.
uvm_pagefree: check for already freed pages before checking the locks.
- Put a per-LWP lock around swapin / swapout.
- Replace use of lockmgr().
- Minor locking fixes and assertions.
- uvm_map.h no longer pulls in proc.h, etc.
- Use kpause where appropriate.
- Make context switch counters 64-bit, and count the total number of
  context switches + voluntary, instead of involuntary + voluntary.
- Add lwp::l_swaplock for uvm.
- PHOLD/PRELE are replaced.
Trap duplicate allocations.
exit1: make the LWP unswappable as it is exiting.
Fix the pmap locking.