[PATCH v7 0/7] Implement Compression Support on BMG
Matt Roper
matthew.d.roper at intel.com
Thu Jul 18 00:05:56 UTC 2024
On Wed, Jul 17, 2024 at 09:10:01PM +0000, Akshata Jahagirdar wrote:
> Xe2+ has unified compression (exactly one compression mode/format),
> where compression is now controlled via PAT at PTE level.
> This simplifies KMD operations, as it can now decompress freely
> without concern for the buffer's original compression format—unlike DG2,
> which had multiple compression formats and thus required copying the
> raw CCS state during VRAM eviction. In addition mixed VRAM and system
> memory buffers were not supported with compression enabled.
>
> On Xe2 dGPU compression is still only supported with VRAM, however we
> can now support compression with VRAM and system memory buffers,
> with GPU access being seamless underneath. So long as when doing
> VRAM -> system memory the KMD uses compressed -> uncompressed,
> to decompress it. This also allows CPU access to such buffers,
> assuming that userspace first decompress the corresponding
> pages being accessed.
> If the pages are already in system memory then KMD would have already
> decompressed them. When restoring such buffers with sysmem -> VRAM
> the KMD can't easily know which pages were originally compressed,
> so we always use uncompressed -> uncompressed here.
> With this it also means we can drop all the raw CCS handling on such
> platforms (including needing to allocate extra CCS storage).
>
> In order to support this we now need to have two different identity
> mappings for compressed and uncompressed VRAM.
> In this patch, we set up the additional identity map for the VRAM with
> compressed pat_index. We then select the appropriate mapping during
> migration/clear. During eviction (vram->sysmem), we use the mapping
> from compressed -> uncompressed. During restore (sysmem->vram), we need
> the mapping from uncompressed -> uncompressed.
> Therefore, we need to have two different mappings for compressed and
> uncompressed vram. We set up an additional identity map for the vram
> with compressed pat_index.
> We then select the appropriate mapping during migration/clear.
>
> Akshata Jahagirdar (7):
> drm/xe/migrate: Handle clear ccs logic for xe2 dgfx
> drm/xe/migrate: Add kunit to test clear functionality
> drm/xe/migrate: Add helper function to program identity map
> drm/xe/xe2: Introduce identity map for compressed pat for vram
> drm/xe/xe_migrate: Handle migration logic for xe2+ dgfx
> drm/xe/migrate: Add kunit to test migration functionality for BMG
> drm/xe/xe2: Do not run xe_bo_test for xe2+ dgfx
Applied to drm-xe-next. Thanks for the patches and reviews.
Matt
>
> drivers/gpu/drm/xe/tests/xe_bo.c | 6 +
> drivers/gpu/drm/xe/tests/xe_migrate.c | 399 ++++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_migrate.c | 185 +++++++-----
> 3 files changed, 524 insertions(+), 66 deletions(-)
>
> --
> 2.34.1
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-xe
mailing list