freebsd-dev/sys/conf
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
..
files Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
files.amd64 Remove the virtio dependency entry for the VirtIO device drivers. This 2013-03-06 07:17:53 +00:00
files.arm Add the required __aeabi_* functions the kernel uses when built for ARM EABI 2013-01-17 09:37:42 +00:00
files.i386 Remove the virtio dependency entry for the VirtIO device drivers. This 2013-03-06 07:17:53 +00:00
files.ia64 Hoist the MI compat_freebsd32 files up into files from files.*. 2012-10-25 04:30:48 +00:00
files.mips Merge Perforce changeset 219925 to head: 2013-01-12 15:58:20 +00:00
files.pc98 Disconnect non-MPSAFE SMBFS from the build in preparation for dropping 2012-10-18 12:04:56 +00:00
files.powerpc Add the bus attachment for the embedded EHCI HC. 2012-11-03 21:08:27 +00:00
files.sparc64 Disconnect non-MPSAFE SMBFS from the build in preparation for dropping 2012-10-18 12:04:56 +00:00
kern.mk Introduce a new make variable COMPILER_TYPE that specifies what 2012-09-13 16:00:46 +00:00
kern.post.mk Remove the links: target. It too is homelessly outdated since it 2012-10-25 04:55:04 +00:00
kern.pre.mk Fix LINT build for arm: NOTES defines LDFLAGS by way of a make option 2012-11-29 03:48:39 +00:00
kmod_syms.awk
kmod.mk Split sdhci driver in two parts: sdhci and sdhci_pci. 2012-10-16 01:10:43 +00:00
ldscript.amd64
ldscript.arm When DDB is enabled and we are building for the ARM EABI include the unwind 2013-01-19 22:08:16 +00:00
ldscript.i386
ldscript.ia64 Stop linking against a direct-mapped virtual address and instead 2011-04-30 20:49:00 +00:00
ldscript.mips
ldscript.mips.cfe
ldscript.mips.mips64
ldscript.mips.octeon1
ldscript.powerpc
ldscript.powerpc64 Add the .opd section, this is helps booting a profiled kernel. 2012-01-20 18:52:31 +00:00
ldscript.sparc64
Makefile.amd64 Remove duplication and centralize testing of various config(8)ed features. 2012-09-12 14:19:40 +00:00
Makefile.arm Don't build the kernel with Thumb interworking as we don't support Thumb. 2013-01-23 07:27:38 +00:00
Makefile.i386 Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to 2012-02-28 18:30:18 +00:00
Makefile.ia64
Makefile.mips Fill out fake preload structure to let userland tools like pmc(3) know 2012-03-15 05:29:51 +00:00
Makefile.pc98 MFi386: r232263 2012-11-10 14:56:35 +00:00
Makefile.powerpc Remove duplication and centralize testing of various config(8)ed features. 2012-09-12 14:19:40 +00:00
Makefile.sparc64
makeLINT.mk Disable INET6 support in modules when building the LINT-NOINET6 kernel. 2012-04-04 21:31:20 +00:00
makeLINT.sed Match the files directive and all the ways to add or subtract options 2011-10-04 17:11:38 +00:00
newvers.sh print compiler version in the kernel banner 2013-02-02 11:58:35 +00:00
NOTES - Make callout(9) tickless, relying on eventtimers(4) as backend for 2013-03-04 11:09:56 +00:00
options Re-enable CTL in GENERIC on i386 and amd64, but turn on the CTL disable 2013-03-04 21:18:45 +00:00
options.amd64 Rename the IVY_RNG option to RDRAND_RNG. 2012-09-13 10:12:16 +00:00
options.arm Replace generic ARM11 option with more specific 2012-12-20 04:32:02 +00:00
options.i386 Rename the IVY_RNG option to RDRAND_RNG. 2012-09-13 10:12:16 +00:00
options.ia64 Port the new PV entry allocator from amd64/i386. This allocator has two 2012-10-26 03:02:39 +00:00
options.mips Add basic support for the Ubiquiti EdgeRouter Lite. 2013-01-02 23:17:50 +00:00
options.pc98
options.powerpc Initial support for running FreeBSD on the Nintendo Wii. We're able to 2012-08-21 06:31:26 +00:00
options.sparc64 - While Netra X1 generally show no ill effects when registering a power 2013-03-02 00:37:31 +00:00
systags.sh
WITHOUT_SOURCELESS Move WITHOUT_SOURCELESS_* files to sys/conf/ in order to avoid "universe" 2012-02-12 14:55:27 +00:00
WITHOUT_SOURCELESS_HOST Fix a typo. 2012-02-12 19:29:34 +00:00
WITHOUT_SOURCELESS_UCODE Move WITHOUT_SOURCELESS_* files to sys/conf/ in order to avoid "universe" 2012-02-12 14:55:27 +00:00