[PATCH] drm/xe/guc: Use drm_info for hwconfig missing message in execlist mode

Lucas De Marchi lucas.demarchi at intel.com
Fri Mar 28 06:09:46 UTC 2025


On Thu, Mar 27, 2025 at 08:22:01PM +0000, Stuart Summers wrote:
>When running in execlist mode we are explicitly not loading
>the GuC firmware and the GuC is needed to provide the hwconfig
>values. Currently we are printing an error message any time
>we see the hwconfig couldn't be obtained for some reason which
>is breaking the execlist specific CI.
>
>Keep the error message for normal GuC based load, but when
>the module is loaded with force_execlist=1, change this to
>an info print.

but do we actually need the info? it would be simpler to just drop the
message. See below.

>
>Signed-off-by: Stuart Summers <stuart.summers at intel.com>
>---
> drivers/gpu/drm/xe/xe_gt_mcr.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_gt_mcr.c b/drivers/gpu/drm/xe/xe_gt_mcr.c
>index 605aad3554e7..52ee2ead3b17 100644
>--- a/drivers/gpu/drm/xe/xe_gt_mcr.c
>+++ b/drivers/gpu/drm/xe/xe_gt_mcr.c
>@@ -345,8 +345,18 @@ static unsigned int dss_per_group(struct xe_gt *gt)
> 	 * Some older platforms don't have tables or don't have complete tables.
> 	 * Newer platforms should always have the required info.

- 	 * Newer platforms should always have the required info.
+ 	 * Newer platforms should always have the required info
+	 * when using GuC.

> 	 */
>-	if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 2000)
>-		xe_gt_err(gt, "Slice/Subslice counts missing from hwconfig table; using typical fallback values\n");
>+	if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 2000) {

-	if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 2000
+	if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 2000 &&
+	    !gt_to_xe(gt)->info.force_execlist)

/me surprised the driver is not exploding in execlist.

Lucas De Marchi

>+		const char *fallback_msg =
>+			"GT%u: Slice/Subslice counts missing from hwconfig table; using typical fallback values\n";
>+		struct drm_printer ip = xe_gt_info_printer(gt);
>+		struct drm_printer ep = xe_gt_err_printer(gt);
>+
>+		/* In execlist, we don't load GuC, so this is expected. */
>+		if (gt_to_xe(gt)->info.force_execlist)
>+			drm_printf(&ip, fallback_msg, gt->info.id);
>+		else
>+			drm_printf(&ep, fallback_msg, gt->info.id);
>+	}
>
> 	if (gt_to_xe(gt)->info.platform == XE_PVC)
> 		return 8;
>-- 
>2.34.1
>


More information about the Intel-xe mailing list