Skip to content

Commit 391008f

Browse files
mbrost05lucasdemarchi
authored andcommitted
drm/xe: Add page queue multiplier
For an unknown reason the math to determine the PF queue size does is not correct - compute UMD applications are overflowing the PF queue which is fatal. A multippier of 8 fixes the problem. Fixes: 3338e4f ("drm/xe: Use topology to determine page fault queue size") Cc: stable@vger.kernel.org Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Jagmeet Randhawa <jagmeet.randhawa@intel.com> Link: https://lore.kernel.org/r/20250408155915.78770-1-matthew.brost@intel.com (cherry picked from commit 29582e0) Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
1 parent 92a09c4 commit 391008f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

drivers/gpu/drm/xe/xe_gt_pagefault.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,9 +435,16 @@ static int xe_alloc_pf_queue(struct xe_gt *gt, struct pf_queue *pf_queue)
435435
num_eus = bitmap_weight(gt->fuse_topo.eu_mask_per_dss,
436436
XE_MAX_EU_FUSE_BITS) * num_dss;
437437

438-
/* user can issue separate page faults per EU and per CS */
438+
/*
439+
* user can issue separate page faults per EU and per CS
440+
*
441+
* XXX: Multiplier required as compute UMD are getting PF queue errors
442+
* without it. Follow on why this multiplier is required.
443+
*/
444+
#define PF_MULTIPLIER 8
439445
pf_queue->num_dw =
440-
(num_eus + XE_NUM_HW_ENGINES) * PF_MSG_LEN_DW;
446+
(num_eus + XE_NUM_HW_ENGINES) * PF_MSG_LEN_DW * PF_MULTIPLIER;
447+
#undef PF_MULTIPLIER
441448

442449
pf_queue->gt = gt;
443450
pf_queue->data = devm_kcalloc(xe->drm.dev, pf_queue->num_dw,

0 commit comments

Comments
 (0)