[PATCH] drm/xe: Move page fault init after topology init

Summers, Stuart stuart.summers at intel.com
Fri Jul 11 16:29:35 UTC 2025


On Fri, 2025-07-11 at 09:25 -0700, Matthew Brost wrote:
> On Fri, Jul 11, 2025 at 09:08:55AM -0600, Summers, Stuart wrote:
> > On Thu, 2025-07-10 at 12:12 -0700, Matthew Brost wrote:
> > > We need the topology to determine GT page fault queue size, move
> > > page
> > > fault init after topology init.
> > > 
> > > Cc: stable at vger.kernel.org
> > > Fixes: 3338e4f90c14 ("drm/xe: Use topology to determine page
> > > fault
> > > queue size")
> > > Signed-off-by: Matthew Brost <matthew.brost at intel.com>
> > 
> > Yep, good catch and thanks!
> > 
> 
> Thanks, I feel like this worked at one point in time though. Maybe
> something in xe_gt_init got re-ordered recently. Will check on that
> ahead of merging to make I have the fixes tag correct.

You know it could have been a problem all along too...

(num_eus + XE_NUM_HW_ENGINES) * PF_MSG_LEN_DW * PF_MULTIPLIER;

We do have a non-zero calculation here even when num_eus is 0. That
might also explain why we needed that extra multiplier, even if we
aren't covering the full pathological case here - I still need to get
those pow-of-2 fixes in to that pathological patch and get that merged
:(

Thanks,
Stuart

> 
> Matt
> 
> > Reviewed-by: Stuart Summers <stuart.summers at intel.com>
> > 
> > > ---
> > >  drivers/gpu/drm/xe/xe_gt.c | 6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/xe/xe_gt.c
> > > b/drivers/gpu/drm/xe/xe_gt.c
> > > index d397df056e4c..af03e19ef9be 100644
> > > --- a/drivers/gpu/drm/xe/xe_gt.c
> > > +++ b/drivers/gpu/drm/xe/xe_gt.c
> > > @@ -628,15 +628,15 @@ int xe_gt_init(struct xe_gt *gt)
> > >         if (err)
> > >                 return err;
> > >  
> > > -       err = xe_gt_pagefault_init(gt);
> > > +       err = xe_gt_sysfs_init(gt);
> > >         if (err)
> > >                 return err;
> > >  
> > > -       err = xe_gt_sysfs_init(gt);
> > > +       err = gt_init_with_gt_forcewake(gt);
> > >         if (err)
> > >                 return err;
> > >  
> > > -       err = gt_init_with_gt_forcewake(gt);
> > > +       err = xe_gt_pagefault_init(gt);
> > >         if (err)
> > >                 return err;
> > >  
> > 



More information about the Intel-xe mailing list