linux-xiaomi-chiron/drivers/gpu/drm
Chris Wilson 280ffdb6dd drm/i915/gt: Free stale request on destroying the virtual engine
Since preempt-to-busy, we may unsubmit a request while it is still on
the HW and completes asynchronously. That means it may be retired and in
the process destroy the virtual engine (as the user has closed their
context), but that engine may still be holding onto the unsubmitted
compelted request. Therefore we need to potentially cleanup the old
request on destroying the virtual engine. We also have to keep the
virtual_engine alive until after the sibling's execlists_dequeue() have
finished peeking into the virtual engines, for which we serialise with
RCU.

v2: Be paranoid and flush the tasklet as well.
v3: And flush the tasklet before the engines, as the tasklet may
re-attach an rb_node after our removal from the siblings.

Fixes: 6d06779e86 ("drm/i915: Load balancing across a virtual engine")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201123113717.20500-4-chris@chris-wilson.co.uk
(cherry picked from commit 46eecfccb4)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2020-11-24 09:30:57 -08:00
..
amd drm/amd/display: Always get CRTC updated constant values inside commit tail 2020-11-18 15:12:22 -05:00
arc drm/arc: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS 2020-06-10 09:02:03 +02:00
arm Linux 5.9-rc4 2020-09-08 14:41:40 +10:00
armada drm-misc-next for 5.10: 2020-09-23 09:52:24 +10:00
aspeed drm/aspeed: Use managed drmm_mode_config_cleanup 2020-09-11 10:47:19 +02:00
ast drm/ast: Enable CRTC before planes 2020-09-16 13:08:10 +02:00
atmel-hlcdc drm/atomic-helper: reset vblank on crtc reset 2020-07-02 20:25:51 +02:00
bochs Linux 5.8 2020-08-11 11:58:31 +10:00
bridge drm: bridge: dw-hdmi: Avoid resetting force in the detect function 2020-11-12 22:21:00 +01:00
etnaviv drm-misc-next for 5.10: 2020-09-23 09:52:24 +10:00
exynos dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
fsl-dcu Linux 5.9-rc4 2020-09-08 14:41:40 +10:00
gma500 drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[] 2020-11-09 15:09:52 +01:00
hisilicon drm/hisilicon: Removed the dependency on the mmu 2020-08-30 20:35:55 -04:00
i2c sound updates for 5.9 2020-08-06 14:27:31 -07:00
i810 drm/i810: make i810_flush_queue() return void 2020-09-11 10:54:17 +02:00
i915 drm/i915/gt: Free stale request on destroying the virtual engine 2020-11-24 09:30:57 -08:00
imx drm/imx: tve remove extraneous type qualifier 2020-10-27 10:30:09 +01:00
ingenic drm/ingenic: Fix bad revert 2020-10-12 20:26:14 +02:00
lib
lima drm: lima: fix common struct sg_table related issues 2020-09-10 08:18:35 +02:00
mcde drm/mcde: Fix unbalanced regulator 2020-11-11 00:27:53 +01:00
mediatek ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
meson treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
mga drm/mga: Don't include <drm/drm_pci.h> 2019-12-05 08:44:16 +01:00
mgag200 drm/mgag200: fix spelling mistake "expeced" -> "expected" 2020-08-27 11:17:52 +02:00
msm dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
mxsfb drm: mxsfb: check framebuffer pitch 2020-09-16 11:13:27 +02:00
nouveau drm/nouveau/kms/nv50-: Use atomic encoder callbacks everywhere 2020-11-14 14:19:18 +10:00
omapdrm Merge branch 'for-5.10-drm-sg-fix' of https://github.com/mszyprow/linux into drm-next 2020-09-17 16:07:11 +10:00
panel drm/panel: mantix: Fix panel reset 2020-10-23 10:05:17 +02:00
panfrost drm/panfrost: Fix module unload 2020-11-03 09:43:57 +01:00
pl111 drm: pl111: Update documentation 2020-07-23 10:06:22 +02:00
qxl drm/ttm: flip tt destroy ordering. 2020-09-18 06:14:41 +10:00
r128 drm: delete drm_pci.h 2020-04-03 17:11:41 +02:00
radeon Merge tag 'amd-drm-fixes-5.10-2020-10-09' of git://people.freedesktop.org/~agd5f/linux into drm-next 2020-10-12 10:40:43 +10:00
rcar-du Miscellaneous R-Car display driver changes: 2020-09-23 08:19:29 +10:00
rockchip drm-misc-next for 5.10: 2020-09-23 09:52:24 +10:00
savage treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
scheduler drm/scheduler: fix sched_fence.c kernel-doc warnings 2020-09-15 17:52:42 -04:00
selftests drm/mst: Add support for QUERY_STREAM_ENCRYPTION_STATUS MST sideband message 2020-09-01 13:02:33 +05:30
shmobile drm/shmobile: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS 2020-06-10 09:05:18 +02:00
sis drm/sis: Don't include <drm/drm_pci.h> 2019-12-05 08:44:55 +01:00
sti Linux 5.9-rc4 2020-09-08 14:41:40 +10:00
stm drm/stm: repair runtime power management 2020-07-08 11:47:01 +02:00
sun4i Fix for drm/sun4i shared with arm-soc 2020-11-19 09:26:07 +01:00
tdfx drm/tdfx: Don't include <drm/drm_pci.h> 2019-12-05 08:45:01 +01:00
tegra drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
tidss drm/tidss: implement WA for AM65xx erratum i2000 2020-08-21 15:17:05 +03:00
tilcdc treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
tiny drm/mipi-dbi: Remove ->enabled 2020-06-24 09:17:34 +02:00
ttm drm/ttm: fix eviction valuable range check. 2020-10-21 06:59:07 +10:00
tve200 drm/tve200: Stabilize enable/disable 2020-09-03 21:14:09 +02:00
udl drm/udl: Use GEM vmap/mmap function from SHMEM helpers 2020-06-10 10:17:21 +02:00
v3d drm/v3d: Fix double free in v3d_submit_cl_ioctl() 2020-10-26 11:43:31 +01:00
vboxvideo drm/vboxvideo: Use drm_gem_vram_vmap() interfaces 2020-09-14 09:12:24 +02:00
vc4 drm/vc4: drv: Remove unused variable 2020-11-03 10:11:05 +01:00
vgem drm/vgem: Use devm_drm_dev_alloc 2020-09-11 10:47:19 +02:00
via treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
virtio drm-misc-next for 5.10: 2020-09-23 09:52:24 +10:00
vkms drm/vkms: Use devm_drm_dev_alloc 2020-09-11 10:47:19 +02:00
vmwgfx RDMA 5.10 pull request 2020-10-17 11:18:18 -07:00
xen drm-misc-next for 5.10: 2020-09-23 09:52:24 +10:00
xlnx Merge drm/drm-next into drm-misc-next 2020-09-14 18:11:40 +02:00
zte sound updates for 5.9 2020-08-06 14:27:31 -07:00
drm_agpsupport.c drm: use DIV_ROUND_UP helper macro for calculations 2019-11-04 18:17:36 +01:00
drm_atomic.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_atomic_helper.c drm/atomic-helper: Remove the timestamping constant update from drm_atomic_helper_update_legacy_modeset_state() 2020-09-14 22:37:31 +03:00
drm_atomic_state_helper.c drm/atomic-helper: reset vblank on crtc reset 2020-07-02 20:25:51 +02:00
drm_atomic_uapi.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_auth.c drm/auth: make drm_{set,drop}master_ioctl symmetrical 2020-06-15 14:49:50 +01:00
drm_blend.c drm: plane: Verify that no or all planes have a zpos property 2020-05-14 02:10:52 +03:00
drm_bridge.c drm: bridge: Pass drm_display_info to drm_bridge_funcs .mode_valid() 2020-06-23 19:53:27 +02:00
drm_bridge_connector.c drm/bridge_connector: Set default status connected for eDP connectors 2020-08-26 19:11:41 +02:00
drm_bufs.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
drm_cache.c drm: core: fix common struct sg_table related issues 2020-09-10 08:17:48 +02:00
drm_client.c drm/client: Add drm_client_framebuffer_flush() 2020-05-26 13:31:01 +02:00
drm_client_modeset.c drm: Nuke mode->vrefresh 2020-05-27 14:31:42 +03:00
drm_color_mgmt.c drm/modeset-lock: Take the modeset BKL for legacy drivers 2020-08-17 13:41:50 -04:00
drm_connector.c drm: Replace mode->export_head with a boolean 2020-09-01 13:38:34 +03:00
drm_context.c drm: context: Clean up documentation 2020-03-16 09:23:55 +01:00
drm_crtc.c Linux 5.9-rc2 2020-08-25 11:00:02 +02:00
drm_crtc_helper.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_crtc_helper_internal.h drm/probe_helper: Add drm_connector_helper_funcs.mode_valid_ctx 2020-07-13 13:29:20 -04:00
drm_crtc_internal.h drm: convert .debugfs_init() hook to return void. 2020-03-18 17:53:28 +01:00
drm_damage_helper.c
drm_debugfs.c drm/debug: Expose connector VRR monitor range via debugfs 2020-06-25 15:47:14 -07:00
drm_debugfs_crc.c drm/crc-debugfs: Fix memleak in crc_control_write 2020-09-01 09:45:44 +02:00
drm_dma.c drm: delete drm_pci.h 2020-04-03 17:11:41 +02:00
drm_dp_aux_dev.c drm/dp_mst: Add MST support to DP DPCD R/W functions 2020-01-09 18:07:46 -05:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm/dp: fix kernel-doc warnings at drm_dp_helper.c 2020-10-27 11:20:36 +01:00
drm_dp_mst_topology.c drm-misc-next for 5.10: 2020-09-23 09:52:24 +10:00
drm_dp_mst_topology_internal.h
drm_drv.c drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm/dp: fix a kernel-doc issue at drm_edid.c 2020-10-27 11:20:42 +01:00
drm_edid_load.c
drm_encoder.c drm/bridge: Make the bridge chain a double-linked list 2019-12-09 10:03:01 +01:00
drm_encoder_slave.c drm: encoder_slave: use new I2C API 2020-06-19 09:20:21 +02:00
drm_fb_cma_helper.c drm: Fix misspellings of "Analog Devices" 2020-04-21 08:15:03 +02:00
drm_fb_helper.c tty/sysrq: Extend the sysrq_key_table to cover capital letters 2020-10-02 14:56:06 +02:00
drm_file.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add drm_fb_swab() 2020-05-26 13:33:08 +02:00
drm_fourcc.c drm: drm_fourcc: add NV15, Q410, Q401 YUV formats 2020-06-19 13:33:40 +01:00
drm_framebuffer.c gpu/drm: cleanup coding style a bit 2020-09-09 11:45:18 +02:00
drm_gem.c drm/shme-helpers: Fix dma_buf_mmap forwarding bug 2020-10-28 12:27:41 +01:00
drm_gem_cma_helper.c drm: prime: add common helper to check scatterlist contiguity 2020-09-10 08:17:48 +02:00
drm_gem_framebuffer_helper.c drm: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:31 +01:00
drm_gem_shmem_helper.c drm/shme-helpers: Fix dma_buf_mmap forwarding bug 2020-10-28 12:27:41 +01:00
drm_gem_ttm_helper.c drm/ttm: merge offset and base in ttm_bus_placement 2020-09-08 10:43:30 +02:00
drm_gem_vram_helper.c drm/vram-helper: Fix use of top-down placement 2020-11-20 05:20:48 +10:00
drm_hashtab.c
drm_hdcp.c drm: Fix HDCP failures when SRM fw is missing 2020-05-05 14:01:53 -04:00
drm_internal.h drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_ioc32.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_ioctl.c drm-misc-next for v5.9: 2020-06-24 15:45:51 +10:00
drm_irq.c drm: use drm_dev_has_vblank more 2020-05-29 12:58:11 +02:00
drm_kms_helper_common.c
drm_lease.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_legacy.h
drm_legacy_misc.c
drm_lock.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_managed.c drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_memory.c
drm_mipi_dbi.c Linux 5.8 2020-08-11 11:58:31 +10:00
drm_mipi_dsi.c drm: mipi-dsi: Convert logging to drm_* functions. 2020-07-10 20:21:45 +02:00
drm_mm.c drm/mm: cleanup and improve next_hole_*_addr() 2020-06-23 15:46:40 +02:00
drm_mode_config.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_mode_object.c drm/modeset-lock: Take the modeset BKL for legacy drivers 2020-08-17 13:41:50 -04:00
drm_modes.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c Linux 5.8 2020-08-11 11:58:31 +10:00
drm_panel.c drm/panel: Add helper for reading DT rotation 2020-08-16 17:12:18 +02:00
drm_panel_orientation_quirks.c drm: Added orientation quirk for ASUS tablet model T103HAF 2020-08-04 11:45:23 +02:00
drm_pci.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_plane.c Linux 5.9-rc2 2020-08-25 11:00:02 +02:00
drm_plane_helper.c
drm_prime.c drm: kernel-doc: add description for a new function parameter 2020-10-27 11:21:04 +01:00
drm_print.c drm/print: convert debug category macros into an enum 2019-11-14 14:08:57 +02:00
drm_probe_helper.c Merge tag 'drm-intel-next-2020-07-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2020-07-31 14:42:37 +10:00
drm_property.c drm: limit to INT_MAX in create_blob ioctl 2019-12-04 19:44:13 -08:00
drm_rect.c drm/rect: update kerneldoc for drm_rect_clip_scaled() 2019-11-28 13:15:43 +01:00
drm_scatter.c gpu/drm: remove the powerpc hack in drm_legacy_sg_alloc 2020-06-02 10:59:11 -07:00
drm_scdc_helper.c
drm_self_refresh_helper.c drm/atomic: fix self-refresh helpers crtc state dereference 2019-11-06 13:00:21 -05:00
drm_simple_kms_helper.c drm/simple-kms: Fix documentation for drm_simple_encoder_init() 2020-03-06 09:24:29 +01:00
drm_syncobj.c drm/syncobj: Tune down unordered timeline DRM_ERROR 2020-08-02 15:22:31 +02:00
drm_sysfs.c drm/connector: notify userspace on hotplug after register complete 2020-06-03 10:24:23 +02:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/atomic-helper: Remove the timestamping constant update from drm_atomic_helper_update_legacy_modeset_state() 2020-09-14 22:37:31 +03:00
drm_vblank_work.c This tree adds the sched_set_fifo*() encapsulation APIs to remove 2020-08-06 11:55:43 -07:00
drm_vm.c drm-misc-next for v5.9: 2020-06-24 15:45:51 +10:00
drm_vma_manager.c
drm_writeback.c drm/writeback: don't set fence->ops to default 2020-05-20 20:03:45 +02:00
Kconfig drm: xlnx: DRM/KMS driver for Xilinx ZynqMP DisplayPort Subsystem 2020-07-18 02:59:16 +03:00
Makefile drm/imx: compile imx directory by default 2020-09-09 16:39:48 +02:00