This patch tries to diminish plague of DMAR read errors present in CI for ADL*, RPL*, DG2 platforms, see for example [1] (grep DMAR). CI is usually tolerant for these errors, so the scale of the problem is not really visible. To show it I have counted lines containing DMAR read errors in dmesgs produced by CI for all three versions of the patch, but in contrast to v2 I have grepped only for lines containing "PTE Read access". Below stats for kernel w/o patchset vs patched one. v1: 210 vs 0 v2: 201 vs 0 v3: 214 vs 0 Apparently the patchset fixes all common PTE read errors. Changelog: v2: - modified commit message (I hope the diagnosis is correct), - added bug checks to ensure scratch is initialized on gen3 platforms. CI produces strange stacktrace for it suggesting scratch[0] is NULL, to be removed after resolving the issue with gen3 platforms. v3: - removed bug checks, replaced with gen check. v4: - change code for scratch page insertion to support all platforms, - add info in commit message there could be more similar issues v5: - changed to patchset adding nop_clear_range related code, - re-insert scratch PTEs on resume To: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> To: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> To: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> To: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxxxxxxx> Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Cc: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx> Cc: Chris Wilson <chris.p.wilson@xxxxxxxxxxxxxxx> Cc: Nirmoy Das <nirmoy.das@xxxxxxxxx> Signed-off-by: Andrzej Hajda <andrzej.hajda@xxxxxxxxx> --- Andrzej Hajda (4): drm/i915/gt: make nop_clear_range public drm/i915/display: use nop_clear_range instead of local function drm/i915/selftests: use nop_clear_range instead of local function drm/i915: add guard page to ggtt->error_capture drivers/gpu/drm/i915/display/intel_dpt.c | 7 +----- drivers/gpu/drm/i915/gt/intel_ggtt.c | 38 ++++++++++++++++++++++++++----- drivers/gpu/drm/i915/gt/intel_gtt.h | 2 ++ drivers/gpu/drm/i915/selftests/mock_gtt.c | 9 ++------ 4 files changed, 37 insertions(+), 19 deletions(-) --- base-commit: 3cd6c251f39c14df9ab711e3eb56e703b359ff54 change-id: 20230308-guard_error_capture-f3f334eec85f Best regards, -- Andrzej Hajda <andrzej.hajda@xxxxxxxxx>