linux_dsm_epyc7002/drivers/gpu/drm
Chris Wilson f6322eddaf drm/i915/preemption: Allow preemption between submission ports
Sometimes we need to boost the priority of an in-flight request, which
may lead to the situation where the second submission port then contains
a higher priority context than the first and so we need to inject a
preemption event. To do so we must always check inside
execlists_dequeue() whether there is a priority inversion between the
ports themselves as well as the head of the priority sorted queue, and we
cannot just skip dequeuing if the queue is empty.

As Michał noted, this doesn't simply extend to handling more than 2-port
submission, as we may need to reorder within the array of executing
requests which themselves are lower priority than the first. A task for
later!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180222142229.14517-1-chris@chris-wilson.co.uk
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2018-02-23 16:37:40 +00:00
..
amd drm/amdgpu: Handle 64-bit return from drm_crtc_vblank_count() 2018-02-15 11:49:35 -08:00
arc
arm
armada Merge branch 'drm-armada-devel-4.15' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-next 2018-01-05 09:51:43 +10:00
ast drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
atmel-hlcdc
bochs drm/bochs: remove the default io_mem_pfn set 2017-12-27 11:34:51 -05:00
bridge Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
cirrus drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
etnaviv drm/etnaviv: use memset32 to init pagetable 2018-01-02 17:36:53 +01:00
exynos drm/exynos: ipp: Remove Exynos DRM IPP subsystem 2018-01-02 08:41:22 +09:00
fsl-dcu
gma500
hisilicon drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
i2c
i810
i915 drm/i915/preemption: Allow preemption between submission ports 2018-02-23 16:37:40 +00:00
imx drm/imx: format modifier support 2018-01-05 11:33:24 +10:00
lib
mediatek
meson
mga
mgag200 drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
msm Merge tag 'drm-msm-next-2018-01-10' of git://people.freedesktop.org/~robclark/linux into drm-next 2018-01-12 11:45:18 +10:00
mxsfb
nouveau Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
omapdrm Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
panel drm/panel: lvds: Handle the optional regulator case properly 2018-01-15 10:16:56 +01:00
pl111
qxl drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
r128
radeon drm/radeon: Handle 64-bit return from drm_crtc_vblank_count() 2018-02-15 11:49:42 -08:00
rcar-du
rockchip
savage
scheduler
selftests
shmobile
sis
sti
stm drm/stm: ltdc: Remove unnecessary platform_get_resource() error check 2017-12-19 15:23:45 +01:00
sun4i Fixes for 4.16: 2018-01-25 11:42:25 +10:00
tdfx
tegra drm/tegra: Handle 64-bit return from drm_crtc_vblank_count() 2018-02-15 11:49:49 -08:00
tilcdc drm/tilcdc changes for 4.16 2017-12-21 11:10:20 +10:00
tinydrm drm/tinydrm: add driver for ST7735R panels 2018-01-03 13:54:24 +01:00
ttm Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-01-25 11:40:54 +10:00
tve200
udl
vc4 Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
vgem
via
virtio drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
vmwgfx Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
zte
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c
drm_atomic.c
drm_auth.c
drm_blend.c
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_color_mgmt.c
drm_connector.c Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_debugfs_crc.c
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c
drm_dp_mst_topology.c
drm_drv.c
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/framebuffer: Print task that allocated the fb in debug info. 2017-12-20 15:30:17 +01:00
drm_file.c
drm_flip_work.c
drm_fourcc.c
drm_framebuffer.c drm/framebuffer: Print task that allocated the fb in debug info. 2017-12-20 15:30:17 +01:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c
drm_gem.c
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h
drm_ioc32.c
drm_ioctl.c
drm_irq.c
drm_kms_helper_common.c
drm_lease.c drm: move lease init after validation in drm_lease_create 2017-12-21 09:49:40 +01:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
drm_mode_config.c Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel_orientation_quirks.c drm: fix tainted kernel caused by drm_panel_orientation_quirks.c 2017-12-23 20:06:45 +01:00
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_plane.c drm/atomic: Handle 64-bit return from drm_crtc_vblank_count() 2018-02-15 11:49:57 -08:00
drm_prime.c
drm_print.c
drm_probe_helper.c
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c
drm_syncobj.c Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vblank.c drm/doc: Fix documentation for _vblank_restore(). 2018-02-21 19:29:06 +01:00
drm_vm.c
drm_vma_manager.c
Kconfig Fixes for 4.16: 2018-01-25 11:42:25 +10:00
Makefile drm: fix gpu scheduler link order 2018-01-24 15:49:04 -05:00