drm/i915/gt: Retain default context state across shrinking
authorVenkata Ramana Nayana <venkata.ramana.nayana@intel.com>
Fri, 27 Nov 2020 12:07:16 +0000 (12:07 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 27 Nov 2020 20:12:55 +0000 (20:12 +0000)
commita9d71f76ccfd309f3bd5f7c9b60e91a4decae792
tree5c974447e0acd148c7ad435e7138a0530a9364ea
parent444fbf5d7058099447c5366ba8bb60d610aeb44b
drm/i915/gt: Retain default context state across shrinking

As we use a shmemfs file to hold the context state, when not in use it
may be swapped out, such as across suspend. Since we wrote into the
shmemfs without marking the pages as dirty, the contents may be dropped
instead of being written back to swap. On re-using the shmemfs file,
such as creating a new context after resume, the contents of that file
were likely garbage and so the new context could then hang the GPU.

Simply mark the page as being written when copying into the shmemfs
file, and it the new contents will be retained across swapout.

Fixes: be1cb55a07bf ("drm/i915/gt: Keep a no-frills swappable copy of the default context state")
Cc: Sudeep Dutt <sudeep.dutt@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Ramalingam C <ramalingam.c@intel.com>
Signed-off-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: Venkata Ramana Nayana <venkata.ramana.nayana@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: <stable@vger.kernel.org> # v5.8+
Link: https://patchwork.freedesktop.org/patch/msgid/20201127120718.454037-161-matthew.auld@intel.com
drivers/gpu/drm/i915/gt/shmem_utils.c