[PATCH] drm/xe: GSM size should be constant on most platforms

Gustavo Sousa gustavo.sousa at intel.com
Fri Jun 6 13:02:49 UTC 2025


Quoting Matt Roper (2025-06-05 19:53:53-03:00)
>On old Intel platforms, the size of the GSM (i.e., the stolen memory
>that holds the GGTT page table entries) could vary, so the driver needed
>to read the actual size from the PCI config space.  However from Xe_HP
>onward, the GSM is now always guaranteed to be exactly 8MB (which
>translates to a 4GB GGTT address space); this is always true regardless
>of what the platform's much larger PPGTT address space is.
>
>The bspec doesn't document the PCI config space as being a valid way to
>query the size of the GSM after Xe_LP platforms, although so far it
>still seems to be giving us proper values for Xe_HP, Xe2, and Xe3.
>However we suspect that the config space will stop providing correct
>values on some upcoming platforms, so we should stop relying on it.
>Instead just use the hardcoded 8MB value as documented elsewhere in the
>bspec.
>
>Bspec: 49636, 67090, 50589
>Signed-off-by: Matt Roper <matthew.d.roper at intel.com>

Reviewed-by: Gustavo Sousa <gustavo.sousa at intel.com>

>---
> drivers/gpu/drm/xe/xe_ggtt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
>index b9a0fd5ccaba..3c811f6e79c9 100644
>--- a/drivers/gpu/drm/xe/xe_ggtt.c
>+++ b/drivers/gpu/drm/xe/xe_ggtt.c
>@@ -219,7 +219,7 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
>         unsigned int gsm_size;
>         int err;
> 
>-        if (IS_SRIOV_VF(xe))
>+        if (IS_SRIOV_VF(xe) || GRAPHICS_VERx100(xe) >= 1250)
>                 gsm_size = SZ_8M; /* GGTT is expected to be 4GiB */
>         else
>                 gsm_size = probe_gsm_size(pdev);
>-- 
>2.49.0
>


More information about the Intel-xe mailing list