opnsense-src/sys/dev/drm2
Attilio Rao c7aebda8a1 The soft and hard busy mechanism rely on the vm object lock to work.
Unify the 2 concept into a real, minimal, sxlock where the shared
acquisition represent the soft busy and the exclusive acquisition
represent the hard busy.
The old VPO_WANTED mechanism becames the hard-path for this new lock
and it becomes per-page rather than per-object.
The vm_object lock becames an interlock for this functionality:
it can be held in both read or write mode.
However, if the vm_object lock is held in read mode while acquiring
or releasing the busy state, the thread owner cannot make any
assumption on the busy state unless it is also busying it.

Also:
- Add a new flag to directly shared busy pages while vm_page_alloc
  and vm_page_grab are being executed.  This will be very helpful
  once these functions happen under a read object lock.
- Move the swapping sleep into its own per-object flag

The KPI is heavilly changed this is why the version is bumped.
It is very likely that some VM ports users will need to change
their own code.

Sponsored by:	EMC / Isilon storage division
Discussed with:	alc
Reviewed by:	jeff, kib
Tested by:	gavin, bapt (older version)
Tested by:	pho, scottl
2013-08-09 11:11:11 +00:00
..
i915 The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
ttm The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
drm.h
drm_agpsupport.c
drm_atomic.h
drm_auth.c
drm_bufs.c
drm_context.c
drm_crtc.c
drm_crtc.h
drm_crtc_helper.c
drm_crtc_helper.h
drm_dma.c
drm_dp_helper.h
drm_dp_iic_helper.c drm: Right-shift I2C slave address before passing it to aux channel 2013-04-08 08:37:57 +00:00
drm_drawable.c
drm_drv.c Import the preliminary port of the TTM. 2013-03-05 09:49:34 +00:00
drm_edid.c drm and i915: Left-shift iic_msg.slave at creation time 2013-04-03 08:27:35 +00:00
drm_edid.h
drm_edid_modes.h
drm_fb_helper.c Import Linux commit a1b7736dac5f2d5876e68c47a0fce3f423840070 2013-03-08 18:15:07 +00:00
drm_fb_helper.h
drm_fops.c Streamline use of cdevpriv and correct some corner cases. 2012-08-15 16:19:39 +00:00
drm_fourcc.h
drm_gem.c Import the preliminary port of the TTM. 2013-03-05 09:49:34 +00:00
drm_gem_names.c
drm_gem_names.h
drm_global.c drm: Fix a call to free(9) with an incorrect malloc type 2013-03-08 18:11:02 +00:00
drm_global.h Import the drm_global references helpers. 2013-03-05 09:27:21 +00:00
drm_hashtab.c
drm_hashtab.h
drm_internal.h
drm_ioc32.c Add drm and i915 ioctl translations for 32 bit process on 64 bit host. 2012-08-18 18:26:25 +00:00
drm_ioctl.c
drm_irq.c
drm_linux_list.h
drm_linux_list_sort.c
drm_lock.c
drm_memory.c
drm_mm.c Import the drm_mm_debug_table() function. 2013-03-05 09:07:58 +00:00
drm_mm.h Import the drm_mm_debug_table() function. 2013-03-05 09:07:58 +00:00
drm_mode.h
drm_modes.c
drm_pci.c
drm_pciids.h Add PCI IDs for Ivy Bridge 2012-06-21 22:06:57 +00:00
drm_sarea.h
drm_scatter.c Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
drm_sman.c
drm_sman.h
drm_stub.c
drm_sysctl.c
drm_vm.c
drmP.h Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00