[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