freebsd-dev/sys
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
..
amd64 Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
arm Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
boot Enable uart driver for A10. 2013-03-01 01:47:11 +00:00
bsm - Implement two new system calls: 2013-03-02 21:11:30 +00:00
cam Re-enable CTL in GENERIC on i386 and amd64, but turn on the CTL disable 2013-03-04 21:18:45 +00:00
cddl Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
compat Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
conf Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
contrib Simplify TAILQ usage and avoid additional memory allocations. 2013-03-05 08:08:16 +00:00
crypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
ddb Small textdump enhancements. 2012-11-01 04:07:08 +00:00
dev Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
fs Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
gdb
geom Add legacy support to geom raid to create a /dev/arX device for support 2013-03-08 20:07:32 +00:00
gnu/fs/reiserfs Garbage collect XFS bits which are now already completely disconnected 2013-03-02 15:33:54 +00:00
i386 Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
ia64 Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
isa
kern Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
kgssapi Piete.Brooks at cl.cam.ac.uk reported via email a crash which was 2012-12-18 00:25:48 +00:00
libkern Add __aeabi_ulcmp to allow building of the LINT kernel. 2013-01-23 09:18:18 +00:00
mips Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
modules Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
net Fix long-standing issue with interface routes being unprotected: 2013-03-08 20:33:50 +00:00
net80211 Bring over my initial work from the net80211 TX locking branch. 2013-03-08 20:23:55 +00:00
netatalk Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netgraph Fix compilation warning. 2013-02-15 07:58:51 +00:00
netinet The hashmask returned by hashinit() is a valid index in the returned hash array. 2013-03-07 04:42:20 +00:00
netinet6 Generate lle_event in the IPv6 neighbor discovery code too. 2013-01-26 00:05:22 +00:00
netipsec Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netipx Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netnatm Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netncp Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netpfil Fix callout expiring dynamic rules. 2013-03-02 14:47:10 +00:00
netsmb Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
nfs Remove the unused nfs_curusec(). 2013-01-17 19:03:24 +00:00
nfsclient Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
nfsserver Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
nlm Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
ofed Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
opencrypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
pc98 Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
pci Fix build. 2013-02-21 12:52:18 +00:00
powerpc Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
rpc Add support for backchannels to the kernel RPC. Backchannels 2012-12-08 00:29:16 +00:00
security Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
sparc64 Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
sys Move the callout subsystem initialization to its own SYSINIT() 2013-03-08 10:37:17 +00:00
teken
tools Further refine the handling of stop signals in the NFS client. The 2013-02-21 19:02:50 +00:00
ufs Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
vm Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
x86 MFcalloutng: 2013-02-28 13:46:03 +00:00
xdr
xen Move the corresponding MTX_SYSINIT() next to their struct mtx declaration 2012-10-26 17:31:35 +00:00
Makefile Run cscope with the -v parameter to make it more user-friendly. 2012-12-02 20:51:24 +00:00