linux/drivers/gpu/drm/xe
Matthew Brost fe05cee4d9 drm/xe: Don't short circuit TDR on jobs not started
Short circuiting TDR on jobs not started is an optimization which is not
required. On LNL we are facing an issue where jobs do not get scheduled
by the GuC if it misses a GGTT page update. When this occurs let the TDR
fire, toggle the scheduling which may get the job unstuck, and print a
warning message. If the TDR fires twice on job that hasn't started,
timeout the job.

v2:
 - Add warning message (Paulo)
 - Add fixes tag (Paulo)
 - Timeout job which hasn't started after TDR firing twice
v3:
 - Include local change
v4:
 - Short circuit check_timeout on job not started
 - use warn level rather than notice (Paulo)

Fixes: 7ddb9403dd ("drm/xe: Sample ctx timestamp to determine if jobs have timed out")
Cc: stable@vger.kernel.org
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241025214330.2010521-2-matthew.brost@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
(cherry picked from commit 35d25a4a00)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
2024-10-31 07:03:14 -07:00
..
abi drm/xe/guc: Enable w/a 14022293748 and 22019794406 2024-08-08 13:47:27 -07:00
compat-i915-headers drm/xe/display: fix compat IS_DISPLAY_STEP() range end 2024-09-12 10:06:55 -04:00
display drm/xe/display: Add missing HPD interrupt enabling during non-d3cold RPM resume 2024-10-29 07:12:56 -07:00
instructions
regs drm/xe/bmg: improve cache flushing behaviour 2024-10-16 09:00:22 -05:00
tests drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
.gitignore
.kunitconfig
Kconfig
Kconfig.debug
Kconfig.profile
Makefile drm/xe/gsc: Add debugfs to print GSC info 2024-08-29 10:32:20 -07:00
xe_args.h
xe_assert.h drm/xe: Remove redundant [drm] tag from xe_assert() message 2024-09-03 11:42:42 +02:00
xe_bb.c drm/xe/oa: Fix overflow in oa batch buffer 2024-09-17 23:31:59 -05:00
xe_bb.h
xe_bb_types.h
xe_bo.c drm/xe: Prevent null pointer access in xe_migrate_copy 2024-10-03 01:24:22 -05:00
xe_bo.h drm/xe/bo: add some annotations in bo_put() 2024-09-17 23:31:06 -05:00
xe_bo_doc.h
xe_bo_evict.c
xe_bo_evict.h
xe_bo_types.h drm/xe: Make xe_ggtt_node struct independent 2024-08-22 14:00:45 -04:00
xe_debugfs.c drm/xe: Make wedged_mode debugfs writable 2024-10-08 18:06:24 -05:00
xe_debugfs.h drm/xe: Allow to compile out debugfs 2024-08-09 21:15:14 -07:00
xe_devcoredump.c drm/xe: Faster devcoredump 2024-08-01 11:00:14 -07:00
xe_devcoredump.h
xe_devcoredump_types.h drm/xe: Faster devcoredump 2024-08-01 11:00:14 -07:00
xe_device.c drm/xe: Enlarge the invalidation timeout from 150 to 500 2024-10-24 12:42:52 -05:00
xe_device.h drm/i915 & drm/xe: save struct drm_device to drvdata 2024-09-02 15:01:59 +03:00
xe_device_sysfs.c
xe_device_sysfs.h
xe_device_types.h drm/xe: Clean up VM / exec queue file lock usage. 2024-10-03 01:21:55 -05:00
xe_dma_buf.c
xe_dma_buf.h
xe_drm_client.c drm/xe: Clean up VM / exec queue file lock usage. 2024-10-03 01:21:55 -05:00
xe_drm_client.h
xe_drv.h
xe_exec.c drm/xe: Use bookkeep slots for external BO's in exec IOCTL 2024-10-16 09:00:22 -05:00
xe_exec.h
xe_exec_queue.c drm/xe/queue: move xa_alloc to prevent UAF 2024-10-03 01:22:50 -05:00
xe_exec_queue.h drm/xe/exec_queue: Prepare last fence for hw engine group resume context 2024-08-17 18:31:54 -07:00
xe_exec_queue_types.h Linux 6.11-rc5 2024-08-27 14:09:45 +02:00
xe_execlist.c drm/xe: move the kernel lrc from hwe to execlist port 2024-08-28 14:50:13 -04:00
xe_execlist.h
xe_execlist_types.h drm/xe: move the kernel lrc from hwe to execlist port 2024-08-28 14:50:13 -04:00
xe_force_wake.c drm/xe: Handle unreliable MMIO reads during forcewake 2024-10-24 12:42:52 -05:00
xe_force_wake.h
xe_force_wake_types.h
xe_gen_wa_oob.c drm/xe: Migrate OOB WAs to OR rules 2024-07-29 11:19:40 -07:00
xe_ggtt.c drm/xe: Add mmio read before GGTT invalidate 2024-10-31 07:02:42 -07:00
xe_ggtt.h drm/xe: Make xe_ggtt_node struct independent 2024-08-22 14:00:45 -04:00
xe_ggtt_types.h drm/xe: Fix missing runtime outer protection for ggtt_remove_node 2024-08-22 14:00:45 -04:00
xe_gpu_scheduler.c drm/xe: Resume TDR after GT reset 2024-10-03 01:19:44 -05:00
xe_gpu_scheduler.h drm/xe: Take job list lock in xe_sched_add_pending_job 2024-10-16 09:00:22 -05:00
xe_gpu_scheduler_types.h
xe_gsc.c drm/xe/gsc: Do not attempt to load the GSC multiple times 2024-09-03 10:36:38 -04:00
xe_gsc.h drm/xe/gsc: Add debugfs to print GSC info 2024-08-29 10:32:20 -07:00
xe_gsc_debugfs.c drm/xe/gsc: Add debugfs to print GSC info 2024-08-29 10:32:20 -07:00
xe_gsc_debugfs.h drm/xe/gsc: Add debugfs to print GSC info 2024-08-29 10:32:20 -07:00
xe_gsc_proxy.c drm/xe/uc: Use managed bo for HuC and GSC objects 2024-08-16 09:15:04 -07:00
xe_gsc_proxy.h
xe_gsc_submit.c
xe_gsc_submit.h
xe_gsc_types.h
xe_gt.c drm/xe/bmg: improve cache flushing behaviour 2024-10-16 09:00:22 -05:00
xe_gt.h drm/xe: clean up fault injection usage 2024-09-01 20:43:33 -07:00
xe_gt_ccs_mode.c
xe_gt_ccs_mode.h
xe_gt_clock.c
xe_gt_clock.h
xe_gt_debugfs.c drm/xe: Add debugfs to dump GuC's hwconfig 2024-08-16 11:07:11 -07:00
xe_gt_debugfs.h
xe_gt_freq.c drm/xe: use devm_add_action_or_reset() helper 2024-10-03 01:13:54 -05:00
xe_gt_freq.h
xe_gt_idle.c
xe_gt_idle.h
xe_gt_idle_types.h
xe_gt_mcr.c drm/xe/mcr: Use Xe2_LPM steering tables for Xe2_HPM 2024-10-03 01:13:55 -05:00
xe_gt_mcr.h
xe_gt_pagefault.c drm/xe: Use helper for ASID -> VM in GPU faults and access counters 2024-10-03 01:13:55 -05:00
xe_gt_pagefault.h
xe_gt_printk.h
xe_gt_sriov_pf.c drm/xe/pf: Improve VF control 2024-08-30 10:51:09 +02:00
xe_gt_sriov_pf.h
xe_gt_sriov_pf_config.c drm/xe: prevent potential UAF in pf_provision_vf_ggtt() 2024-09-12 12:29:30 -05:00
xe_gt_sriov_pf_config.h drm/xe/pf: Add function to sanitize VF resources 2024-08-30 10:51:06 +02:00
xe_gt_sriov_pf_config_types.h drm/xe: Make xe_ggtt_node struct independent 2024-08-22 14:00:45 -04:00
xe_gt_sriov_pf_control.c drm/xe/pf: Improve VF control 2024-08-30 10:51:09 +02:00
xe_gt_sriov_pf_control.h drm/xe/pf: Improve VF control 2024-08-30 10:51:09 +02:00
xe_gt_sriov_pf_control_types.h drm/xe/pf: Improve VF control 2024-08-30 10:51:09 +02:00
xe_gt_sriov_pf_debugfs.c
xe_gt_sriov_pf_debugfs.h
xe_gt_sriov_pf_helpers.h
xe_gt_sriov_pf_monitor.c
xe_gt_sriov_pf_monitor.h
xe_gt_sriov_pf_monitor_types.h
xe_gt_sriov_pf_policy.c
xe_gt_sriov_pf_policy.h
xe_gt_sriov_pf_policy_types.h
xe_gt_sriov_pf_service.c
xe_gt_sriov_pf_service.h
xe_gt_sriov_pf_service_types.h
xe_gt_sriov_pf_types.h drm/xe/pf: Improve VF control 2024-08-30 10:51:09 +02:00
xe_gt_sriov_printk.h
xe_gt_sriov_vf.c drm/xe: Make xe_ggtt_node struct independent 2024-08-22 14:00:45 -04:00
xe_gt_sriov_vf.h drm/xe/vf: Track writes to inaccessible registers from VF 2024-07-15 15:18:34 +02:00
xe_gt_sriov_vf_debugfs.c
xe_gt_sriov_vf_debugfs.h
xe_gt_sriov_vf_types.h
xe_gt_stats.c drm/xe: Add stats for tlb invalidation count 2024-08-12 19:08:53 +02:00
xe_gt_stats.h drm/xe: Add stats for tlb invalidation count 2024-08-12 19:08:53 +02:00
xe_gt_sysfs.c drm/xe: use devm_add_action_or_reset() helper 2024-10-03 01:13:54 -05:00
xe_gt_sysfs.h
xe_gt_sysfs_types.h
xe_gt_throttle.c
xe_gt_throttle.h
xe_gt_tlb_invalidation.c drm/xe: fix unbalanced rpm put() with fence_fini() 2024-10-16 09:00:22 -05:00
xe_gt_tlb_invalidation.h drm/xe: fix unbalanced rpm put() with fence_fini() 2024-10-16 09:00:22 -05:00
xe_gt_tlb_invalidation_types.h drm/xe: Hold a PM ref when GT TLB invalidations are inflight 2024-08-15 09:44:22 -04:00
xe_gt_topology.c drm/xe: Fix warning on unreachable statement 2024-07-22 09:43:52 -07:00
xe_gt_topology.h
xe_gt_types.h drm/xe/pcode: Treat pcode as per-tile rather than per-GT 2024-09-03 10:36:46 -04:00
xe_guc.c drm/xe: Set firmware state to loadable before registering guc_fini_hw 2024-08-23 09:54:11 -07:00
xe_guc.h drm/xe/guc: Fix GUC_{SUBMIT,FIRMWARE}_VER helper macros 2024-09-17 23:22:24 -05:00
xe_guc_ads.c drm/xe/guc: Enable w/a 14022293748 and 22019794406 2024-08-08 13:47:27 -07:00
xe_guc_ads.h
xe_guc_ads_types.h
xe_guc_ct.c drm/xe/guc/ct: Flush g2h worker in case of g2h response timeout 2024-10-24 12:42:52 -05:00
xe_guc_ct.h
xe_guc_ct_types.h
xe_guc_db_mgr.c
xe_guc_db_mgr.h
xe_guc_debugfs.c
xe_guc_debugfs.h
xe_guc_exec_queue_types.h
xe_guc_fwif.h
xe_guc_hwconfig.c drm/xe/mcr: Try to derive dss_per_grp from hwconfig attributes 2024-08-16 11:07:13 -07:00
xe_guc_hwconfig.h drm/xe/mcr: Try to derive dss_per_grp from hwconfig attributes 2024-08-16 11:07:13 -07:00
xe_guc_hxg_helpers.h
xe_guc_id_mgr.c
xe_guc_id_mgr.h
xe_guc_klv_helpers.c
xe_guc_klv_helpers.h
xe_guc_klv_thresholds_set.h
xe_guc_klv_thresholds_set_types.h
xe_guc_log.c
xe_guc_log.h
xe_guc_log_types.h
xe_guc_pc.c drm/xe/pcode: Treat pcode as per-tile rather than per-GT 2024-09-03 10:36:46 -04:00
xe_guc_pc.h
xe_guc_pc_types.h
xe_guc_relay.c
xe_guc_relay.h
xe_guc_relay_types.h
xe_guc_submit.c drm/xe: Don't short circuit TDR on jobs not started 2024-10-31 07:03:14 -07:00
xe_guc_submit.h drm/xe: Wedge the entire device 2024-07-18 10:25:33 -04:00
xe_guc_submit_types.h
xe_guc_types.h Short summary of fixes pull: 2024-10-11 09:03:30 +10:00
xe_heci_gsc.c drm/xe/gsc: add Battlemage support 2024-07-17 09:47:15 -07:00
xe_heci_gsc.h drm/xe/gsc: add Battlemage support 2024-07-17 09:47:15 -07:00
xe_hmm.c
xe_hmm.h
xe_huc.c drm/xe/uc: Use managed bo for HuC and GSC objects 2024-08-16 09:15:04 -07:00
xe_huc.h
xe_huc_debugfs.c
xe_huc_debugfs.h
xe_huc_types.h
xe_hw_engine.c drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
xe_hw_engine.h drm/xe: Export xe_hw_engine's mmio accessors 2024-08-06 22:21:14 -07:00
xe_hw_engine_class_sysfs.c
xe_hw_engine_class_sysfs.h
xe_hw_engine_group.c drm/xe/exec: Switch hw engine group execution mode upon job submission 2024-08-17 18:31:57 -07:00
xe_hw_engine_group.h drm/xe/exec: Switch hw engine group execution mode upon job submission 2024-08-17 18:31:57 -07:00
xe_hw_engine_group_types.h drm/xe/hw_engine_group: Introduce xe_hw_engine_group 2024-08-17 18:31:47 -07:00
xe_hw_engine_types.h drm/xe: move the kernel lrc from hwe to execlist port 2024-08-28 14:50:13 -04:00
xe_hw_fence.c drm/xe: Drop HW fence pointer to HW fence ctx 2024-08-21 11:53:12 -04:00
xe_hw_fence.h
xe_hw_fence_types.h drm/xe: Drop HW fence pointer to HW fence ctx 2024-08-21 11:53:12 -04:00
xe_hwmon.c drm/xe/pcode: Treat pcode as per-tile rather than per-GT 2024-09-03 10:36:46 -04:00
xe_hwmon.h
xe_irq.c drm/xe/gsc: add Battlemage support 2024-07-17 09:47:15 -07:00
xe_irq.h
xe_lmtt.c drm/xe: Normalize NEEDS_64K BO flag 2024-07-22 12:53:04 +02:00
xe_lmtt.h
xe_lmtt_2l.c
xe_lmtt_ml.c
xe_lmtt_types.h
xe_lrc.c drm/xe: Remove NULL check of lrc->bo in xe_lrc_snapshot_capture() 2024-08-26 10:27:33 +02:00
xe_lrc.h
xe_lrc_types.h
xe_macros.h
xe_map.h
xe_memirq.c
xe_memirq.h
xe_memirq_types.h
xe_migrate.c drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
xe_migrate.h drm/xe: Remove unnecessary drm_mm.h includes 2024-08-22 14:00:44 -04:00
xe_migrate_doc.h
xe_mmio.c Linux 6.11-rc5 2024-08-27 14:09:45 +02:00
xe_mmio.h drm/xe: Remove stale declaration of xe_mmio_probe_vram() 2024-07-25 16:53:33 -07:00
xe_mocs.c
xe_mocs.h
xe_module.c drm/xe: Use separate rpm lockdep map for non-d3cold-capable devices 2024-08-28 16:29:15 +02:00
xe_module.h drm/xe: Rename enable_display module param 2024-08-13 13:52:20 -07:00
xe_oa.c drm/xe/oa: Don't reset OAC_CONTEXT_ENABLE on OA stream close 2024-10-03 01:23:18 -05:00
xe_oa.h
xe_oa_types.h drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
xe_observation.c drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
xe_observation.h drm/xe/uapi: Rename xe perf layer as xe observation layer 2024-07-11 09:54:24 -04:00
xe_pat.c drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
xe_pat.h
xe_pci.c drm/xe: Restore pci state upon resume 2024-10-03 01:13:54 -05:00
xe_pci.h
xe_pci_sriov.c
xe_pci_sriov.h
xe_pci_types.h
xe_pcode.c drm/xe/pcode: Treat pcode as per-tile rather than per-GT 2024-09-03 10:36:46 -04:00
xe_pcode.h drm/xe/pcode: Treat pcode as per-tile rather than per-GT 2024-09-03 10:36:46 -04:00
xe_pcode_api.h
xe_platform_types.h
xe_pm.c drm/xe: Remove runtime argument from display s/r functions 2024-10-29 07:12:55 -07:00
xe_pm.h drm/xe: Use xe_pm_runtime_get in xe_bo_move() if reclaim-safe. 2024-09-04 09:28:09 +02:00
xe_preempt_fence.c Linux 6.11-rc5 2024-08-27 14:09:45 +02:00
xe_preempt_fence.h
xe_preempt_fence_types.h drm/xe: prevent UAF around preempt fence 2024-08-19 10:39:28 -04:00
xe_pt.c drm/xe: Fix memory leak when aborting binds 2024-10-03 01:24:54 -05:00
xe_pt.h
xe_pt_types.h
xe_pt_walk.c
xe_pt_walk.h
xe_query.c drm/xe/query: Increase timestamp width 2024-10-16 09:00:22 -05:00
xe_query.h
xe_range_fence.c
xe_range_fence.h
xe_reg_sr.c
xe_reg_sr.h
xe_reg_sr_types.h
xe_reg_whitelist.c
xe_reg_whitelist.h
xe_res_cursor.h drm/xe: Remove unnecessary drm_mm.h includes 2024-08-22 14:00:44 -04:00
xe_ring_ops.c
xe_ring_ops.h
xe_ring_ops_types.h
xe_rtp.c drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
xe_rtp.h drm/xe/rtp: Expand max rules/actions per entry again 2024-07-29 11:19:40 -07:00
xe_rtp_helpers.h drm/xe/rtp: Expand max rules/actions per entry again 2024-07-29 11:19:40 -07:00
xe_rtp_types.h
xe_sa.c drm/xe: Update xe_sa to use xe_managed_bo_create_pin_map 2024-08-23 09:54:32 -07:00
xe_sa.h
xe_sa_types.h drm/xe: Update xe_sa to use xe_managed_bo_create_pin_map 2024-08-23 09:54:32 -07:00
xe_sched_job.c drm/xe: replace #include <drm/xe_drm.h> with <uapi/drm/xe_drm.h> 2024-08-28 15:17:54 -04:00
xe_sched_job.h
xe_sched_job_types.h
xe_sriov.c
xe_sriov.h
xe_sriov_pf.c
xe_sriov_pf.h
xe_sriov_pf_helpers.h
xe_sriov_printk.h
xe_sriov_types.h
xe_step.c drm/xe: remove display stepping handling 2024-08-22 15:48:21 +03:00
xe_step.h
xe_step_types.h drm/xe: remove display stepping handling 2024-08-22 15:48:21 +03:00
xe_sync.c drm/xe/ufence: Prefetch ufence addr to catch bogus address 2024-10-24 12:42:52 -05:00
xe_sync.h drm/xe: Remove unused xe_sync_entry_wait 2024-07-18 10:17:30 -07:00
xe_sync_types.h
xe_tile.c drm/xe/pcode: Treat pcode as per-tile rather than per-GT 2024-09-03 10:36:46 -04:00
xe_tile.h
xe_tile_sysfs.c
xe_tile_sysfs.h
xe_tile_sysfs_types.h
xe_trace.c
xe_trace.h Linux 6.11-rc5 2024-08-27 14:09:45 +02:00
xe_trace_bo.c
xe_trace_bo.h
xe_trace_guc.c
xe_trace_guc.h
xe_ttm_stolen_mgr.c drm/xe: Remove unnecessary drm_mm.h includes 2024-08-22 14:00:44 -04:00
xe_ttm_stolen_mgr.h
xe_ttm_sys_mgr.c Revert "drm/xe/lnl: Offload system clear page activity to GPU" 2024-08-28 06:45:52 -07:00
xe_ttm_sys_mgr.h
xe_ttm_vram_mgr.c drm/buddy: Add start address support to trim function 2024-08-07 18:19:00 -04:00
xe_ttm_vram_mgr.h
xe_ttm_vram_mgr_types.h
xe_tuning.c drm/xe/xe2: Add performance tuning for L3 cache flushing 2024-10-03 01:13:55 -05:00
xe_tuning.h
xe_uc.c drm/xe: Wedge the entire device 2024-07-18 10:25:33 -04:00
xe_uc.h drm/xe: Wedge the entire device 2024-07-18 10:25:33 -04:00
xe_uc_debugfs.c drm/xe/gsc: Add debugfs to print GSC info 2024-08-29 10:32:20 -07:00
xe_uc_debugfs.h
xe_uc_fw.c drm/xe/gsc: Track the platform in the compatibility version 2024-08-29 10:32:19 -07:00
xe_uc_fw.h drm/xe/gsc: Do not attempt to load the GSC multiple times 2024-09-03 10:36:38 -04:00
xe_uc_fw_abi.h
xe_uc_fw_types.h
xe_uc_types.h
xe_vm.c drm/xe: fix unbalanced rpm put() with fence_fini() 2024-10-16 09:00:22 -05:00
xe_vm.h
xe_vm_doc.h
xe_vm_types.h
xe_vram.c drm/xe/vram: fix ccs offset calculation 2024-09-17 23:22:28 -05:00
xe_vram.h
xe_vram_freq.c drm/xe/pcode: Treat pcode as per-tile rather than per-GT 2024-09-03 10:36:46 -04:00
xe_vram_freq.h
xe_wa.c drm/xe/xe2lpg: Extend Wa_15016589081 for xe2lpg 2024-10-16 09:00:22 -05:00
xe_wa.h drm/xe: Add assert for XE_WA() usage 2024-07-24 09:05:37 -07:00
xe_wa_oob.rules drm/xe/bmg: implement Wa_16023588340 2024-08-19 13:30:41 -04:00
xe_wait_user_fence.c drm/xe/ufence: ufence can be signaled right after wait_woken 2024-10-16 09:00:22 -05:00
xe_wait_user_fence.h
xe_wopcm.c
xe_wopcm.h
xe_wopcm_types.h