2023-04-26 21:31:29

by Andrzej Hajda

[permalink] [raw]
Subject: [PATCH v8 0/2] drm/i915: Hugepage manager and test for MTL

This patchset patches sent by Jonathan and Andi, with
addressed CI failures:
1. Fixed checking alignment of 64K pages on both Pre-Gen12 and Gen12.
2. Fixed start alignment of 2M pages.

Regards
Andrzej

Jonathan Cavitt (2):
drm/i915: Migrate platform-dependent mock hugepage selftests to live
drm/i915: Use correct huge page manager for MTL

.../gpu/drm/i915/gem/selftests/huge_pages.c | 88 +++++++++++++++----
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 3 +-
2 files changed, 71 insertions(+), 20 deletions(-)

Cc: [email protected]
Cc: [email protected]
Cc: Jonathan Cavitt <[email protected]>
Cc: Andrzej Hajda <[email protected]>
Cc: Matthew Auld <[email protected]>
--
2.39.2

---
Changes in v8:
- described in patches
- Link to v7: https://lore.kernel.org/r/[email protected]

---
Jonathan Cavitt (2):
drm/i915: Migrate platform-dependent mock hugepage selftests to live
drm/i915: Use correct huge page manager for MTL

drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 106 ++++++++++++++++++------
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 3 +-
2 files changed, 83 insertions(+), 26 deletions(-)
---
base-commit: 4d0066a1c0763d50b6fb017e27d12b081ce21b57
change-id: 20230425-hugepage-migrate-1869aaf31a6d

Best regards,
--
Andrzej Hajda <[email protected]>


2023-04-26 21:50:23

by Andrzej Hajda

[permalink] [raw]
Subject: [PATCH v8 2/2] drm/i915: Use correct huge page manager for MTL

From: Jonathan Cavitt <[email protected]>

MTL currently uses gen8_ppgtt_insert_huge when managing huge pages.
This is because MTL reports as not supporting 64K pages, or more
accurately, the system that reports whether a platform has 64K pages
reports false for MTL. This is only half correct, as the 64K page support
reporting system only cares about 64K page support for LMEM, which MTL
doesn't have.

MTL should be using xehpsdv_ppgtt_insert_huge. However, simply changing
over to using that manager doesn't resolve the issue because MTL is
expecting the virtual address space for the page table to be flushed after
initialization, so we must also add a flush statement there.

Signed-off-by: Jonathan Cavitt <[email protected]>
Reviewed-by: Matthew Auld <[email protected]>
Signed-off-by: Andrzej Hajda <[email protected]>
---
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
index 4daaa6f5566888..9c571185395f49 100644
--- a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
+++ b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
@@ -570,6 +570,7 @@ xehpsdv_ppgtt_insert_huge(struct i915_address_space *vm,
}
} while (rem >= page_size && index < max);

+ drm_clflush_virt_range(vaddr, PAGE_SIZE);
vma_res->page_sizes_gtt |= page_size;
} while (iter->sg && sg_dma_len(iter->sg));
}
@@ -707,7 +708,7 @@ static void gen8_ppgtt_insert(struct i915_address_space *vm,
struct sgt_dma iter = sgt_dma(vma_res);

if (vma_res->bi.page_sizes.sg > I915_GTT_PAGE_SIZE) {
- if (HAS_64K_PAGES(vm->i915))
+ if (GRAPHICS_VER_FULL(vm->i915) >= IP_VER(12, 50))
xehpsdv_ppgtt_insert_huge(vm, vma_res, &iter, cache_level, flags);
else
gen8_ppgtt_insert_huge(vm, vma_res, &iter, cache_level, flags);

--
2.34.1

2023-04-28 09:26:12

by Andi Shyti

[permalink] [raw]
Subject: Re: [Intel-gfx] [PATCH v8 2/2] drm/i915: Use correct huge page manager for MTL

Hi Andrzej,

> MTL currently uses gen8_ppgtt_insert_huge when managing huge pages.
> This is because MTL reports as not supporting 64K pages, or more
> accurately, the system that reports whether a platform has 64K pages
> reports false for MTL. This is only half correct, as the 64K page support
> reporting system only cares about 64K page support for LMEM, which MTL
> doesn't have.
>
> MTL should be using xehpsdv_ppgtt_insert_huge. However, simply changing
> over to using that manager doesn't resolve the issue because MTL is
> expecting the virtual address space for the page table to be flushed after
> initialization, so we must also add a flush statement there.
>
> Signed-off-by: Jonathan Cavitt <[email protected]>
> Reviewed-by: Matthew Auld <[email protected]>
> Signed-off-by: Andrzej Hajda <[email protected]>

Reviewed-by: Andi Shyti <[email protected]>

Andi

2023-04-28 11:45:48

by Andrzej Hajda

[permalink] [raw]
Subject: Re: [Intel-gfx] [PATCH v8 0/2] drm/i915: Hugepage manager and test for MTL

On 26.04.2023 23:28, Andrzej Hajda wrote:
> This patchset patches sent by Jonathan and Andi, with
> addressed CI failures:
> 1. Fixed checking alignment of 64K pages on both Pre-Gen12 and Gen12.
> 2. Fixed start alignment of 2M pages.
>
> Regards
> Andrzej
>
> Jonathan Cavitt (2):
> drm/i915: Migrate platform-dependent mock hugepage selftests to live
> drm/i915: Use correct huge page manager for MTL
>
> .../gpu/drm/i915/gem/selftests/huge_pages.c | 88 +++++++++++++++----
> drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 3 +-
> 2 files changed, 71 insertions(+), 20 deletions(-)
>
> Cc: [email protected]
> Cc: [email protected]
> Cc: Jonathan Cavitt <[email protected]>
> Cc: Andrzej Hajda <[email protected]>
> Cc: Matthew Auld <[email protected]>

Thx for comments, pushed.

Regards
Andrzej