]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Mark contents as dirty on a write fault
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 20 Sep 2019 12:18:21 +0000 (13:18 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 24 Sep 2019 08:58:56 +0000 (09:58 +0100)
commitd437559c18dd84e857c8d2ff9e013fa3ac3a17cf
tree7322bb356a7ac973ce06bbfa2988a87c442f69a8
parent747f545cfe2aba738e519ba1e4ae54c457faaa2e
drm/i915: Mark contents as dirty on a write fault

Since dropping the set-to-gtt-domain in commit e15868212af6 ("drm/i915:
Flush pages on acquisition"), we no longer mark the contents as dirty on
a write fault. This has the issue of us then not marking the pages as
dirty on releasing the buffer, which means the contents are not written
out to the swap device (should we ever pick that buffer as a victim).
Notably, this is visible in the dumb buffer interface used for cursors.
Having updated the cursor contents via mmap, and swapped away, if the
shrinker should evict the old cursor, upon next reuse, the cursor would
be invisible.

E.g. echo 80 > /proc/sys/kernel/sysrq ; echo f > /proc/sysrq-trigger

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111541
Fixes: e15868212af6 ("drm/i915: Flush pages on acquisition")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: <stable@vger.kernel.org> # v5.2+
Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190920121821.7223-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_mman.c