[PATCH] drm/xe: Add ASID to range invalidation feature flag
Upadhyay, Tejas
tejas.upadhyay at intel.com
Wed Jun 4 10:17:06 UTC 2025
> -----Original Message-----
> From: Summers, Stuart <stuart.summers at intel.com>
> Sent: 03 June 2025 22:40
> To: Upadhyay, Tejas <tejas.upadhyay at intel.com>
> Cc: intel-xe at lists.freedesktop.org; Vishwanathapura, Niranjana
> <niranjana.vishwanathapura at intel.com>
> Subject: Re: [PATCH] drm/xe: Add ASID to range invalidation feature flag
>
> On Tue, 2025-06-03 at 08:49 +0000, Upadhyay, Tejas wrote:
> >
> >
> > > -----Original Message-----
> > > From: Intel-xe <intel-xe-bounces at lists.freedesktop.org> On Behalf Of
> > > Stuart Summers
> > > Sent: 01 May 2025 23:06
> > > Cc: Vishwanathapura, Niranjana
> > > <niranjana.vishwanathapura at intel.com>;
> > > intel-xe at lists.freedesktop.org; Summers, Stuart
> > > <stuart.summers at intel.com>
> > > Subject: [PATCH] drm/xe: Add ASID to range invalidation feature flag
> > >
> > > Make it explicit that the ASID is used to identify a VM when issuing
> > > a ranged- based TLB invalidation.
> > >
> > > /s/has_range_tlb_invalidation/has_range_tlb_invalidation_asid/
> >
> > While the patch looks ok, what is the motivation, is that guc doing
> > asid based invalidation now so changing flag name?
>
> This is more about clarification. We might also have a time where we want to
> be able to do invalidations triggered at some finer granularity than by
> process/asid, so this gives the clarification on the intention.
>
> Thanks,
> Stuart
>
> >
> > Tejas
> > >
> > > Signed-off-by: Stuart Summers <stuart.summers at intel.com>
> > > ---
> > > drivers/gpu/drm/xe/xe_device_types.h | 4 ++--
> > > drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 2 +-
> > > drivers/gpu/drm/xe/xe_pci.c | 6 +++---
> > > drivers/gpu/drm/xe/xe_pci_types.h | 2 +-
> > > 4 files changed, 7 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_device_types.h
> > > b/drivers/gpu/drm/xe/xe_device_types.h
> > > index 06c65dace026..3e49b88a8a62 100644
> > > --- a/drivers/gpu/drm/xe/xe_device_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_device_types.h
> > > @@ -327,8 +327,8 @@ struct xe_device {
> > > u8 has_llc:1;
> > > /** @info.has_pxp: Device has PXP support */
> > > u8 has_pxp:1;
> > > - /** @info.has_range_tlb_invalidation: Has range
> > > based TLB invalidations */
> > > - u8 has_range_tlb_invalidation:1;
> > > + /** @info.has_range_tlb_invalidation_asid: Has
> > > range based
> > > TLB invalidations */
Can we add per asid here
However, change looks good ok to me,
Reviewed-by: Tejas Upadhyay <tejas.upadhyay at intel.com>
Tejas
> > > + u8 has_range_tlb_invalidation_asid:1;
> > > /** @info.has_sriov: Supports SR-IOV */
> > > u8 has_sriov:1;
> > > /** @info.has_usm: Device has unified shared memory
> > > support */ diff --git a/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
> > > b/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
> > > index 084cbdeba8ea..c68f7cc8e175 100644
> > > --- a/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
> > > +++ b/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
> > > @@ -366,7 +366,7 @@ int xe_gt_tlb_invalidation_range(struct xe_gt
> > > *gt,
> > >
> > > action[len++] = XE_GUC_ACTION_TLB_INVALIDATION;
> > > action[len++] = 0; /* seqno, replaced in
> > > send_tlb_invalidation */
> > > - if (!xe->info.has_range_tlb_invalidation ||
> > > + if (!xe->info.has_range_tlb_invalidation_asid ||
> > > length > MAX_RANGE_TLB_INVALIDATION_LENGTH) {
> > > action[len++] =
> > > MAKE_INVAL_OP(XE_GUC_TLB_INVAL_FULL);
> > > } else {
> > > diff --git a/drivers/gpu/drm/xe/xe_pci.c
> > > b/drivers/gpu/drm/xe/xe_pci.c index
> > > a4caa6222b6f..cfafcfcbbbc6 100644
> > > --- a/drivers/gpu/drm/xe/xe_pci.c
> > > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > > @@ -91,7 +91,7 @@ static const struct xe_graphics_desc graphics_xelp
> > > = { };
> > >
> > > #define XE_HP_FEATURES \
> > > - .has_range_tlb_invalidation = true, \
> > > + .has_range_tlb_invalidation_asid = true, \
> > > .va_bits = 48, \
> > > .vm_max_level = 3
> > >
> > > @@ -140,7 +140,7 @@ static const struct xe_graphics_desc
> > > graphics_xelpg = {
> > > .has_atomic_enable_pte_bit = 1, \
> > > .has_flat_ccs = 1, \
> > > .has_indirect_ring_state = 1, \
> > > - .has_range_tlb_invalidation = 1, \
> > > + .has_range_tlb_invalidation_asid = 1, \
> > > .has_usm = 1, \
> > > .va_bits = 48, \
> > > .vm_max_level = 4, \
> > > @@ -680,7 +680,7 @@ static int xe_info_init(struct xe_device *xe,
> > > /* Runtime detection may change this later */
> > > xe->info.has_flat_ccs = graphics_desc->has_flat_ccs;
> > >
> > > - xe->info.has_range_tlb_invalidation = graphics_desc-
> > > > has_range_tlb_invalidation;
> > > + xe->info.has_range_tlb_invalidation_asid =
> > > +graphics_desc->has_range_tlb_invalidation_asid;
> > > xe->info.has_usm = graphics_desc->has_usm;
> > >
> > > for_each_remote_tile(tile, xe, id) { diff --git
> > > a/drivers/gpu/drm/xe/xe_pci_types.h
> > > b/drivers/gpu/drm/xe/xe_pci_types.h
> > > index e9b9bbc138d3..3d1c745de2ac 100644
> > > --- a/drivers/gpu/drm/xe/xe_pci_types.h
> > > +++ b/drivers/gpu/drm/xe/xe_pci_types.h
> > > @@ -19,7 +19,7 @@ struct xe_graphics_desc {
> > > u8 has_atomic_enable_pte_bit:1;
> > > u8 has_flat_ccs:1;
> > > u8 has_indirect_ring_state:1;
> > > - u8 has_range_tlb_invalidation:1;
> > > + u8 has_range_tlb_invalidation_asid:1;
> > > u8 has_usm:1;
> > > };
> > >
> > > --
> > > 2.34.1
> >
More information about the Intel-xe
mailing list