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

Matthew Brost matthew.brost at intel.com
Fri Jul 11 16:58:15 UTC 2025


On Fri, Jul 11, 2025 at 10:50:44AM -0600, Summers, Stuart wrote:
> On Fri, 2025-07-11 at 16:29 +0000, Summers, Stuart wrote:
> > 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
> > :(
> 
> You know it also wouldn't hurt to print this calculated value out
> during driver load or something so we can more easily catch
> miscalculations like this instead of just relying on the compliance
> test results. Of course not needed here in this patch...
> 

Indeed. I'm looking at a page fault layer refactor (similar to the TLB
invalidation layer refactor) and have some local patches. I've added an
assertion that the number of EUs calculated is non-zero, along with a
debug print statement to catch a bug like this. I could just post those
changes I suppose.

Matt

> Thanks,
> Stuart
> 
> > 
> > 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