[Intel-xe] [PATCH v2 0/8] Meteorlake interrupt & TLB handling updates

Matt Roper matthew.d.roper at intel.com
Wed Apr 12 22:59:02 UTC 2023


On Wed, Apr 12, 2023 at 03:52:40PM -0700, Matt Roper wrote:
> Although Meteor Lake has multiple GTs, we need to be careful not to use
> multi-tile flows when processing interrupts.  The platform as a whole
> only has a single copy of the SGunit interrupt registers, and interrupts
> relating to the media GT are delivered as part of the primary GT's IRQ
> reporting flow.  Only when an engine (or GuC) interrupt is raised do we
> need to determine which GT it relates to for further processing.
> 
> The whole multi-GT vs multi-tile situation is made more confusing by the
> Xe driver's misuse of 'gt' as the target of all register operations.
> That's probably something we should refactor in the future so that
> xe_mmio_*() will take something more appropriate than an xe_gt
> parameter.
> 
> With the fixes in this series, interrupts are now properly flowing on
> both the primary and media GT for MTL.  We're still seeing some TLB
> invalidation timeouts, but those no longer seem to be caused by problems
> with interrupt handling.

I should have updated this final paragraph...with the changes in v2, all
of the TLB invalidation failures are gone now and we have a clean driver
load without warning/error on MTL.  Actual tests (like xe_exec_basic)
still show some problems on the platform (memory cat errors, timed out
jobs), but tracking down and solving those will be work for a future
patch series.


Matt

> 
> 
> Matt Roper (8):
>   drm/xe/irq: Cleanup media GT interrupt flow
>   drm/xe/irq: Improve warnings and assertions for GT handling
>   drm/xe/irq: Process Gunit interrupts in relation to the device
>   drm/xe: Fix xe_mmio_rmw32 operation
>   drm/xe/irq: Ensure primary GuC won't clobber media GuC's interrupt
>     mask
>   drm/xe: Include GT ID in error message if TLB invalidation times out
>   drm/xe: Invalidate TLB on all affected GTs during GGTT updates
>   drm/xe/tlb: Obtain forcewake when doing GGTT TLB invalidations
> 
>  drivers/gpu/drm/xe/xe_ggtt.c                |  24 +++-
>  drivers/gpu/drm/xe/xe_ggtt_types.h          |   2 +-
>  drivers/gpu/drm/xe/xe_gt.c                  |   4 +
>  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c |   4 +-
>  drivers/gpu/drm/xe/xe_gt_types.h            |   2 +
>  drivers/gpu/drm/xe/xe_guc.c                 |  11 +-
>  drivers/gpu/drm/xe/xe_irq.c                 | 115 +++++++++++++++-----
>  drivers/gpu/drm/xe/xe_mmio.h                |   2 +-
>  8 files changed, 125 insertions(+), 39 deletions(-)
> 
> -- 
> 2.39.2
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list