]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gem: Flush coherency domains on first set-domain-ioctl
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 19 Oct 2020 20:38:25 +0000 (21:38 +0100)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 4 Nov 2020 00:14:03 +0000 (19:14 -0500)
commitf379f54c61e3503de02bb4b70aa495c62bebee9e
tree47bd4ba4e71a121abcd5626fb883bc2f917d170b
parentdb645fdc1ac414f5ff24a3dbee0e0d80eb08dfa2
drm/i915/gem: Flush coherency domains on first set-domain-ioctl

Avoid skipping what appears to be a no-op set-domain-ioctl if the cache
coherency state is inconsistent with our target domain. This also has
the utility of using the population of the pages to validate the backing
store.

The danger in skipping the first set-domain is leaving the cache
inconsistent and submitting stale data, or worse leaving the clean data
in the cache and not flushing it to the GPU. The impact should be small
as it requires a no-op set-domain as the very first ioctl in a
particular sequence not found in typical userspace.

Reported-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Fixes: 06c19070674c ("drm/i915: Skip object locking around a no-op set-domain ioctl")
Testcase: igt/gem_mmap_offset/blt-coherency
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: <stable@vger.kernel.org> # v5.2+
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201019203825.10966-1-chris@chris-wilson.co.uk
(cherry picked from commit 44c2200afcd59f441b43f27829b4003397cc495d)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/gem/i915_gem_domain.c