opnsense-src/sys/dev/drm
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
..
ati_pcigart.c Now that we properly set write-combining on the pages that back the GART, 2010-04-22 18:47:30 +00:00
drm.h resync to git master 2008-10-03 16:59:11 +00:00
drm_agpsupport.c Do a sweep of the tree replacing calls to pci_find_extcap() with calls to 2011-03-23 13:10:15 +00:00
drm_atomic.h resync to git master 2008-10-03 16:59:11 +00:00
drm_auth.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_bufs.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
drm_context.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
drm_dma.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_drawable.c Correct memory leak of info->rects. Previously we would free info, but 2008-10-13 18:06:33 +00:00
drm_drv.c Make drm(4) build, if not work reliably, on PowerPC. 2010-11-16 03:43:06 +00:00
drm_fops.c Streamline use of cdevpriv and correct some corner cases. 2012-08-15 16:19:39 +00:00
drm_hashtab.c Address some WITNESS panics that occur when using the via driver. 2010-04-23 14:48:30 +00:00
drm_hashtab.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_internal.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
drm_ioctl.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_irq.c fix atomic_set_xxx misuse in drm 2010-12-11 10:18:05 +00:00
drm_linux_list.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_lock.c Add some debugging so I can see when syscalls are being restarted 2009-03-19 08:36:08 +00:00
drm_memory.c Make drm(4) build, if not work reliably, on PowerPC. 2010-11-16 03:43:06 +00:00
drm_mm.c Address some WITNESS panics that occur when using the via driver. 2010-04-23 14:48:30 +00:00
drm_mm.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_pci.c We don't know what these pages are going to be used for, they should be 2009-03-30 18:01:42 +00:00
drm_pciids.h Add support for ATI Radeon HD 4250. 2010-08-03 16:30:56 +00:00
drm_sarea.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
drm_scatter.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
drm_sman.c Address some WITNESS panics that occur when using the via driver. 2010-04-23 14:48:30 +00:00
drm_sman.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_sysctl.c Fix display of the drm sysctls. 2011-04-23 23:11:44 +00:00
drm_vm.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
drmP.h Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
i915_dma.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
i915_drm.h resync to git master 2008-10-03 16:59:11 +00:00
i915_drv.c Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
i915_drv.h Do not define bool/true/false if the symbols already exist. 2011-12-12 18:43:24 +00:00
i915_irq.c Some more cleanups for vblank code on Intel. 2009-06-25 18:27:08 +00:00
i915_mem.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
i915_reg.h Add support for Intel Pineview chips, aka IGD 2010-03-13 11:51:18 +00:00
i915_suspend.c Fix what appears to be a typo, and restore the registers correctly. 2009-03-20 17:51:26 +00:00
mach64_dma.c Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
mach64_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mach64_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
mach64_drv.h Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
mach64_irq.c Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
mach64_state.c Check pointer for NULL before dereferencing it, not after. 2009-10-21 15:54:45 +00:00
mga_dma.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
mga_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mga_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
mga_drv.h Fix format string Z --> z, since the former is a deprecated and (in FreeBSD) 2011-12-16 12:42:02 +00:00
mga_irq.c Add some debugging so I can see when syscalls are being restarted 2009-03-19 08:36:08 +00:00
mga_state.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mga_ucode.h
mga_warp.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
r128_cce.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
r128_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
r128_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
r128_drv.h Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
r128_irq.c Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
r128_state.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
r300_cmdbuf.c check offsets for R300_ZB_ZPASS_ADDR 2009-04-07 22:26:53 +00:00
r300_reg.h Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
r600_blit.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
r600_cp.c Now that we properly set write-combining on the pages that back the GART, 2010-04-22 18:47:30 +00:00
r600_microcode.h Import support for ATI Radeon R600 and R700 series chips. 2009-03-07 21:36:57 +00:00
radeon_cp.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
radeon_cs.c Make drm(4) build, if not work reliably, on PowerPC. 2010-11-16 03:43:06 +00:00
radeon_drm.h Add GET_PARAM support for Z pipes. 2009-08-23 15:02:58 +00:00
radeon_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
radeon_drv.h radeon_family is an enum, so ordering can be important. 2009-09-28 22:40:29 +00:00
radeon_irq.c R600 doesn't support IRQs yet, so don't try to use them. 2009-09-28 22:37:07 +00:00
radeon_mem.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
radeon_microcode.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
radeon_state.c In sys/dev/drm/radeon_state.c, use the correct printf length modifiers 2011-12-30 02:07:50 +00:00
savage_bci.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
savage_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
savage_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
savage_drv.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
savage_state.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
sis_drm.h
sis_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
sis_drv.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
sis_ds.c
sis_ds.h
sis_mm.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
tdfx_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
tdfx_drv.h
via_3d_reg.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_dma.c Cast VIA_READ to (void) where the result is unused. 2012-11-09 14:46:23 +00:00
via_dmablit.c Cast VIA_READ to (void) where the result is unused. 2012-11-09 14:46:23 +00:00
via_dmablit.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_drm.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_drv.c Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_drv.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_irq.c Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_map.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
via_mm.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
via_verifier.c Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_verifier.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_video.c fx->lock is used as an index, correct test case. 2010-04-28 10:33:41 +00:00