On 10/21/21 13:44, Matthew Auld wrote:
We seem to have an unfortunate issue where we arrive from:

     i915_gem_object_flush_if_display+0x86/0xd0 [i915]
     intel_user_framebuffer_dirty+0x1a/0x50 [i915]
     drm_mode_dirtyfb_ioctl+0xfb/0x1b0

Which can be before the pages are populated(and pinned for display), and
so i915_gem_object_has_struct_page() might still return true, as per the
ttm backend. We could re-order the later get_pages() call here, but
since on discrete everything should already be coherent, with the
exception of the display engine, and even there display surfaces must be
allocated in device local-memory anyway, so there should in theory be no
conceivable reason to ever call i915_gem_clflush_object() on discrete.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/4320
Signed-off-by: Matthew Auld <matthew.a...@intel.com>
Cc: Thomas Hellström <thomas.hellst...@linux.intel.com>

Reviewed-by: Thomas Hellström <thomas.hellst...@linux.intel.com>


Reply via email to