freebsd-nq/sys/powerpc/aim
Attilio Rao 89f6b8632c Switch the vm_object mutex to be a rwlock. This will enable in the
future further optimizations where the vm_object lock will be held
in read mode most of the time the page cache resident pool of pages
are accessed for reading purposes.

The change is mostly mechanical but few notes are reported:
* The KPI changes as follow:
  - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK()
  - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK()
  - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK()
  - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED()
    (in order to avoid visibility of implementation details)
  - The read-mode operations are added:
    VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(),
    VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED()
* The vm/vm_pager.h namespace pollution avoidance (forcing requiring
  sys/mutex.h in consumers directly to cater its inlining functions
  using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h
  consumers now must include also sys/rwlock.h.
* zfs requires a quite convoluted fix to include FreeBSD rwlocks into
  the compat layer because the name clash between FreeBSD and solaris
  versions must be avoided.
  At this purpose zfs redefines the vm_object locking functions
  directly, isolating the FreeBSD components in specific compat stubs.

The KPI results heavilly broken by this commit.  Thirdy part ports must
be updated accordingly (I can think off-hand of VirtualBox, for example).

Sponsored by:	EMC / Isilon storage division
Reviewed by:	jeff
Reviewed by:	pjd (ZFS specific review)
Discussed with:	alc
Tested by:	pho
2013-03-09 02:32:23 +00:00
..
clock.c MFcalloutng: 2013-02-28 13:46:03 +00:00
copyinout.c Use the ABI-mandated thread pointer register (r2 for ppc32, r13 for ppc64) 2011-06-23 22:21:28 +00:00
interrupt.c Remove some dead code: unnecessary isyncs and memory sorting, which are 2011-06-02 14:15:44 +00:00
locore32.S Setup BAT0 and BAT1 on the Wii. 2012-11-21 08:04:21 +00:00
locore64.S Implement DTrace for PowerPC. This includes both 32-bit and 64-bit. 2012-11-07 23:45:09 +00:00
locore.S MFppc64: 2010-07-13 05:32:19 +00:00
machdep.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
mmu_oea64.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
mmu_oea64.h Add an abstraction layer to the 64-bit AIM MMU's page table manipulation 2010-12-04 02:42:52 +00:00
mmu_oea.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
moea64_if.m Add an abstraction layer to the 64-bit AIM MMU's page table manipulation 2010-12-04 02:42:52 +00:00
moea64_native.c Merge from vmobj-rwlock branch: 2013-02-26 01:00:11 +00:00
mp_cpudep.c Use a global __pure2 function instead of a global register variable for 2011-11-17 15:49:42 +00:00
nexus.c - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
slb.c Flip the semantic of M_NOWAIT to only require the allocation to not 2012-11-14 20:01:40 +00:00
swtch32.S Fix final bugs in memory barriers on PowerPC: 2012-05-04 16:00:22 +00:00
swtch64.S Fix final bugs in memory barriers on PowerPC: 2012-05-04 16:00:22 +00:00
trap_subr32.S Implement DTrace for PowerPC. This includes both 32-bit and 64-bit. 2012-11-07 23:45:09 +00:00
trap_subr64.S Implement DTrace for PowerPC. This includes both 32-bit and 64-bit. 2012-11-07 23:45:09 +00:00
trap.c Implement DTrace for PowerPC. This includes both 32-bit and 64-bit. 2012-11-07 23:45:09 +00:00
uma_machdep.c Flip the semantic of M_NOWAIT to only require the allocation to not 2012-11-14 20:01:40 +00:00
vm_machdep.c For architectures not using direct map , and requiring real KVA page for 2011-01-18 21:57:02 +00:00