[Intel-gfx] [PATCH 07/10] drm/i915/error: skip non-mappable pages
Thomas Hellström (Intel)
thomas_os at shipmail.org
Fri Jun 17 14:26:11 UTC 2022
On 5/25/22 20:43, Matthew Auld wrote:
> Skip capturing any lmem pages that can't be copied using the CPU. This
> in now only best effort on platforms that have small BAR.
>
> Testcase: igt at gem-exec-capture@capture-invisible
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> Cc: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> Cc: Jon Bloomfield <jon.bloomfield at intel.com>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Cc: Jordan Justen <jordan.l.justen at intel.com>
> Cc: Kenneth Graunke <kenneth at whitecape.org>
> Cc: Akeem G Abodunrin <akeem.g.abodunrin at intel.com>
> ---
> drivers/gpu/drm/i915/i915_gpu_error.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index 0512c66fa4f3..77df899123c2 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -1116,11 +1116,15 @@ i915_vma_coredump_create(const struct intel_gt *gt,
> dma_addr_t dma;
>
> for_each_sgt_daddr(dma, iter, vma_res->bi.pages) {
> + dma_addr_t offset = dma - mem->region.start;
> void __iomem *s;
>
> - s = io_mapping_map_wc(&mem->iomap,
> - dma - mem->region.start,
> - PAGE_SIZE);
> + if (offset + PAGE_SIZE > mem->io_size) {
> + ret = -EINVAL;
> + break;
> + }
> +
> + s = io_mapping_map_wc(&mem->iomap, offset, PAGE_SIZE);
> ret = compress_page(compress,
> (void __force *)s, dst,
> true);
Reviewed-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
More information about the Intel-gfx
mailing list