OpenCloudOS-Kernel/drivers/gpu/drm/i915
Chris Wilson fe3288b5da drm/i915: Park the breadcrumbs signaler across a GPU reset
The signal threads may be running concurrently with the GPU reset. The
completion from the GPU run asynchronous with the reset and two threads
may see different snapshots of the state, and the signaler may mark a
request as complete as we try to reset it. We don't tolerate 2 different
views of the same state and complain if we try to mark a request as
failed if it is already complete. Disable the signal threads during
reset to prevent this conflict (even though the conflict implies that
the state we resetting to is invalid, we have already made our
decision!).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99733
References: https://bugs.freedesktop.org/show_bug.cgi?id=99671
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170212172002.23072-4-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
2017-02-13 11:18:28 +00:00
..
gvt Merge tag 'drm-intel-next-2017-01-23' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-01-27 12:08:32 +10:00
Kconfig drm/i915: Support explicit fencing for execbuf 2017-01-27 19:55:48 +00:00
Kconfig.debug drm/i915: Build DRM range manager selftests for CI 2017-02-02 13:59:05 +00:00
Makefile drm/i915: Move most cdclk/rawclk related code to intel_cdclk.c 2017-02-08 18:07:10 +02:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Consolidate checks for memcpy-from-wc support 2017-01-06 16:02:07 +00:00
i915_debugfs.c drm/i915/debugfs: Add i915_hpd_storm_ctl 2017-02-10 14:04:00 -05:00
i915_drv.c drm/i915: Always call i915_gem_reset_finish() following i915_gem_reset_prepare() 2017-02-13 11:18:18 +00:00
i915_drv.h drm/i915/debugfs: Add i915_hpd_storm_ctl 2017-02-10 14:04:00 -05:00
i915_gem.c drm/i915: Park the breadcrumbs signaler across a GPU reset 2017-02-13 11:18:28 +00:00
i915_gem.h drm/i915: Rename conditional GEM execution macros 2017-02-10 21:43:43 +00:00
i915_gem_batch_pool.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Use the size/type of address space to make decisions 2017-02-09 17:09:27 +00:00
i915_gem_context.h drm/i915: Simplify testing for am-I-the-kernel-context? 2017-01-06 16:02:12 +00:00
i915_gem_dmabuf.c drm/i915: Make GEM object alloc/free and stolen created take dev_priv 2016-12-01 18:00:15 +00:00
i915_gem_evict.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2017-02-10 16:27:24 +01:00
i915_gem_execbuffer.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2017-02-10 16:27:24 +01:00
i915_gem_fence_reg.c drm/i915: Replace 4096 with PAGE_SIZE or I915_GTT_PAGE_SIZE 2017-01-10 20:54:32 +00:00
i915_gem_fence_reg.h drm/i915: Replace 4096 with PAGE_SIZE or I915_GTT_PAGE_SIZE 2017-01-10 20:54:32 +00:00
i915_gem_gtt.c drm/i915: Unbind any residual objects/vma from the Global GTT on shutdown 2017-02-10 19:10:05 +00:00
i915_gem_gtt.h drm/i915: Use the size/type of address space to make decisions 2017-02-09 17:09:27 +00:00
i915_gem_internal.c drm/i915: Recreate internal objects with single page segments if dmar fails 2017-02-03 09:55:58 +00:00
i915_gem_object.h drm/i915: Split out i915_gem_object_set_tiling() 2017-01-10 15:29:14 +00:00
i915_gem_render_state.c drm/i915: Remove i915_vma_create from VMA API 2017-01-19 10:17:39 +00:00
i915_gem_render_state.h drm/i915: Reuse the active golden render state batch 2016-10-28 20:53:44 +01:00
i915_gem_request.c drm/i915: Check for timeout completion when waiting for the rq to submitted 2017-02-09 09:26:32 +00:00
i915_gem_request.h drm/i915: Fix oopses in the overlay code due to i915_gem_active stuff 2017-01-03 11:41:17 +02:00
i915_gem_shrinker.c drm/i915: i915_gem_shrink_all() needs an awake device 2017-02-08 16:24:42 +00:00
i915_gem_stolen.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2017-02-10 16:27:24 +01:00
i915_gem_tiling.c drm/i915: Allow large objects to be tiled on gen2/3 2017-02-03 15:55:48 +00:00
i915_gem_timeline.c drm/i915: Assert all timeline requests are gone before fini 2017-01-05 15:34:40 +00:00
i915_gem_timeline.h drm/i915: Rename i915_gem_timeline.next_seqno to .seqno 2016-11-25 07:01:11 +00:00
i915_gem_userptr.c Linux 4.10-rc2 2017-01-04 11:35:18 +01:00
i915_gpu_error.c drm/i915: Capture module parameters for the GPU error state 2017-02-06 22:37:34 +00:00
i915_guc_reg.h drm/i915/huc: Add HuC fw loading support 2017-01-19 11:18:55 +02:00
i915_guc_submission.c drm/i915: Remove i915_vma_create from VMA API 2017-01-19 10:17:39 +00:00
i915_ioc32.c
i915_irq.c drm/i915/debugfs: Add i915_hpd_storm_ctl 2017-02-10 14:04:00 -05:00
i915_memcpy.c drm/i915: Mark the static key for movntqda as static 2016-08-17 12:36:07 +01:00
i915_mm.c drm/i915: Use remap_io_mapping() to prefault all PTE in a single pass 2016-08-19 17:13:36 +01:00
i915_oa_hsw.c drm/i915: Add more Haswell OA metric sets 2016-11-22 14:40:00 +01:00
i915_oa_hsw.h drm/i915: advertise available metrics via sysfs 2016-11-22 14:38:51 +01:00
i915_params.c drm/i915: Enable atomic support by default on supported platforms. 2017-02-09 15:56:45 +01:00
i915_params.h drm/i915: Use bool i915_param.alpha_support 2017-02-06 22:37:33 +00:00
i915_pci.c drm/i915/glk: Program pipe gamma and degamma tables 2017-01-30 10:25:13 +02:00
i915_perf.c drm/i915: Simplify releasing context reference 2016-12-18 16:18:53 +00:00
i915_pvinfo.h
i915_reg.h drm/i915: Use the size/type of address space to make decisions 2017-02-09 17:09:27 +00:00
i915_suspend.c drm/i915: Make i915_save/restore_state and intel_i2c_reset take dev_priv 2016-12-01 18:01:23 +00:00
i915_sw_fence.c drm/i915: Flush the change in debugobject before reallocation 2017-01-16 12:21:19 +00:00
i915_sw_fence.h drm/i915: Hold a reference on the request for its fence chain 2016-12-05 11:00:32 +02:00
i915_sysfs.c drm/i915: Report the failure to write to the punit 2017-01-26 17:09:44 +00:00
i915_trace.h drm/i915: Extract reserving space in the GTT to a helper 2017-01-11 12:28:13 +00:00
i915_trace_points.c
i915_utils.h drm/i915: Sanity check the computed size and base of stolen memory 2017-01-31 11:19:23 +00:00
i915_vgpu.c drm/i915: Fix a typo in vgt_balloon_space() 2017-01-17 15:08:58 +00:00
i915_vgpu.h
i915_vma.c drm/i915: Assert that we never create a vma for the aliasing_ppgtt 2017-02-09 12:22:15 +00:00
i915_vma.h drm/i915: Remove i915_gem_object_to_ggtt() 2017-01-19 10:18:21 +00:00
intel_acpi.c
intel_atomic.c drm/i915: Move intel_atomic_get_shared_dpll_state() to intel_dpll_mgr.c 2017-01-02 11:31:53 +02:00
intel_atomic_plane.c drm/i915: Track pinned vma in intel_plane_state 2017-01-19 10:14:09 +00:00
intel_audio.c drm/i915: Start moving the cdclk stuff into a distinct state structure 2017-02-08 18:07:10 +02:00
intel_bios.c drm/i915: Use range_overflows() 2017-01-06 16:02:11 +00:00
intel_bios.h drm/i915/dsi: Fix swapping of MIPI_SEQ_DEASSERT_RESET / MIPI_SEQ_ASSERT_RESET 2016-12-20 16:28:25 +02:00
intel_breadcrumbs.c drm/i915: Park the breadcrumbs signaler across a GPU reset 2017-02-13 11:18:28 +00:00
intel_cdclk.c drm/i915: Replace the .modeset_commit_cdclk() hook with a more direct .set_cdclk() hook 2017-02-08 18:07:11 +02:00
intel_color.c drm/i915/glk: Program pipe gamma and degamma tables 2017-01-30 10:25:13 +02:00
intel_crt.c drm/i915: Don't leak edid in intel_crt_detect_ddc() 2017-01-23 10:26:18 +02:00
intel_csr.c drm/i915: Fix W=1 warning for csr_load_work_fn() 2017-01-23 09:15:29 +00:00
intel_ddi.c drm/i915: Remove unused function intel_ddi_get_link_dpll() 2017-02-10 11:40:27 +02:00
intel_device_info.c drm/i915: Avoid BIT(max) - 1 and use GENMASK(max - 1, 0) 2017-02-08 17:22:00 +02:00
intel_display.c drm/i915: Simplify platform checks in intel_fb_pitch_limit() 2017-02-10 18:44:53 +02:00
intel_dp.c drm/i915: Avoid spurious WARNs about the wrong pipe in the PPS code 2017-02-10 18:44:18 +02:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915/skl: drop workarounds for A0 and B0 revisions 2016-09-26 12:08:22 +03:00
intel_dp_mst.c drm/i915: Fix POWER_DOMAIN_AUDIO refcounting. 2017-02-01 22:05:07 +01:00
intel_dpio_phy.c drm/i915: Only poll DW3_A when init DDI PHY for ports B and C. 2016-12-02 12:16:25 -08:00
intel_dpll_mgr.c drm/i915: Remove unused function intel_ddi_get_link_dpll() 2017-02-10 11:40:27 +02:00
intel_dpll_mgr.h drm/i915: Remove unused function intel_ddi_get_link_dpll() 2017-02-10 11:40:27 +02:00
intel_drv.h drm/i915: Remove unused function intel_ddi_get_link_dpll() 2017-02-10 11:40:27 +02:00
intel_dsi.c drm/i915: Add MIPI_IO WA and program DSI regulators 2017-02-01 16:18:45 +02:00
intel_dsi.h
intel_dsi_dcs_backlight.c
intel_dsi_panel_vbt.c drm/i915/dsi: Fix chv_exec_gpio disabling the GPIOs it is setting 2016-12-20 16:28:38 +02:00
intel_dsi_pll.c drm/i915: relax uncritical udelay_range() 2016-12-16 11:22:01 +02:00
intel_dvo.c drm/i915: Pass dev_priv to intel_setup_outputs() 2016-11-25 16:43:24 +02:00
intel_engine_cs.c drm/i915: Split intel_engine allocation and initialisation 2017-01-24 12:29:47 +00:00
intel_fbc.c drm/i915: Start moving the cdclk stuff into a distinct state structure 2017-02-08 18:07:10 +02:00
intel_fbdev.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2017-02-10 16:27:24 +01:00
intel_fifo_underrun.c drm/i915: Always use intel_get_crtc_for_pipe() 2016-11-01 16:40:38 +02:00
intel_frontbuffer.c drm/i915: Use dev_priv consistently through the intel_frontbuffer interface 2016-08-04 20:20:03 +01:00
intel_frontbuffer.h drm/i915: Move frontbuffer CS write tracking from ggtt vma to object 2016-11-18 11:15:59 +00:00
intel_guc_fwif.h drm/i915/huc: Support HuC authentication 2017-01-19 11:19:07 +02:00
intel_guc_loader.c drm/i915/guc: Log significant events at the info level 2017-02-08 16:00:01 +00:00
intel_guc_log.c drm/i915/guc: Move GuC log related functions into dedicated file 2017-01-18 07:29:04 +00:00
intel_gvt.c Documentation/gpu: Add section for Intel GVT-g host support 2016-10-20 17:18:39 +08:00
intel_gvt.h drm/i915/gvt: clean up intel_gvt.h as interface for i915 core 2016-10-20 17:18:30 +08:00
intel_hangcheck.c drm/i915: Disable hangcheck when wedged 2016-11-22 17:42:17 +00:00
intel_hdmi.c drm/i915: Remove WA for swapped HPD pins in broxton A stepping 2017-02-09 10:20:00 +02:00
intel_hotplug.c drm/i915/debugfs: Add i915_hpd_storm_ctl 2017-02-10 14:04:00 -05:00
intel_huc.c drm/i915/huc: Assert that HuC vma is placed in GuC accessible range 2017-01-20 19:59:57 +00:00
intel_i2c.c drm/i915: Introduce IS_GEN9_BC for Skylake and Kabylake. 2017-01-24 10:29:00 -08:00
intel_lrc.c drm/i915: Rename conditional GEM execution macros 2017-02-10 21:43:43 +00:00
intel_lrc.h drm/i915: Split intel_engine allocation and initialisation 2017-01-24 12:29:47 +00:00
intel_lspcon.c drm/i915/lspcon: Remove DPCD compare based resume time workaround 2017-02-06 16:33:33 +02:00
intel_lvds.c drm/i915: Intel panel detection cleanup 2016-12-13 17:25:26 +02:00
intel_mocs.c drm/i915/glk: Turn on workarounds that apply to Geminilake too 2017-01-30 09:49:07 +02:00
intel_mocs.h drm/i915: Make various init functions take dev_priv 2016-12-01 18:01:15 +00:00
intel_modes.c drm: Remove superflous linux/fb.h includes 2016-08-12 10:41:39 +02:00
intel_opregion.c drm/i915/opregion: fill in the CADL from connector list, not DIDL 2016-11-17 12:45:59 +02:00
intel_overlay.c drm/i915: Eliminate superfluous i915_ggtt_view_normal 2017-01-14 16:18:36 +00:00
intel_panel.c drm/i915: Start moving the cdclk stuff into a distinct state structure 2017-02-08 18:07:10 +02:00
intel_pipe_crc.c drm/i915: Avoid drm_atomic_state_put(NULL) on error paths 2017-01-18 13:47:22 +00:00
intel_pm.c drm/i915: Move ilk_pipe_pixel_rate() to intel_display.c 2017-02-08 18:07:11 +02:00
intel_psr.c drm/i915/psr: Fix compiler warnings for hsw_psr_disable() 2017-01-18 10:25:01 +00:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Rename conditional GEM execution macros 2017-02-10 21:43:43 +00:00
intel_ringbuffer.h drm/i915: Rename conditional GEM execution macros 2017-02-10 21:43:43 +00:00
intel_runtime_pm.c drm/i915: Make power domain masks 64 bit long 2017-02-10 11:22:17 +02:00
intel_sdvo.c drm/i915: distinguish G33 and Pineview from each other 2016-12-07 23:28:33 +02:00
intel_sdvo_regs.h
intel_sideband.c drm/i915: Also clear the punit's PDATA sideband register 2017-01-26 17:10:36 +00:00
intel_sprite.c drm/i915/glk: Plane color correction register changes 2017-01-30 10:23:35 +02:00
intel_tv.c drm/i915: Pass dev_priv to intel_setup_outputs() 2016-11-25 16:43:24 +02:00
intel_uc.c drm/i915/guc: Move GuC log related functions into dedicated file 2017-01-18 07:29:04 +00:00
intel_uc.h drm/i915/huc: Support HuC authentication 2017-01-19 11:19:07 +02:00
intel_uncore.c drm/i915: refactor register fw read/write macros for recent GENs 2017-02-06 08:55:40 +00:00
intel_vbt_defs.h drm/915: Parsing the missed out DTD fields from the VBT 2016-12-23 15:13:39 +02:00