[PATCH] drm/xe/pf: Skip LMTT update if no LMEM was provisioned

Piotr Piórkowski piotr.piorkowski at intel.com
Fri Aug 1 10:09:45 UTC 2025


Michal Wajdeczko <michal.wajdeczko at intel.com> wrote on czw [2025-lip-31 21:46:33 +0200]:
> During VF unprovisioning, if VF was not provisioned with LMEM,
> there is no need to trigger LMTT update, as VF LMTT was never
> set. This will spare us sending full TLB invalidation requests.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
> index f00cce81f1ff..692b174dd5b8 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
> @@ -1434,8 +1434,10 @@ static int pf_update_vf_lmtt(struct xe_device *xe, unsigned int vfid)
>  	return err;
>  }
>  
> -static void pf_release_vf_config_lmem(struct xe_gt *gt, struct xe_gt_sriov_config *config)
> +static bool pf_release_vf_config_lmem(struct xe_gt *gt, struct xe_gt_sriov_config *config)
>  {
> +	bool released = false;
> +
>  	xe_gt_assert(gt, IS_DGFX(gt_to_xe(gt)));
>  	xe_gt_assert(gt, xe_gt_is_main_type(gt));
>  	lockdep_assert_held(xe_gt_sriov_pf_master_mutex(gt));
> @@ -1443,7 +1445,9 @@ static void pf_release_vf_config_lmem(struct xe_gt *gt, struct xe_gt_sriov_confi
>  	if (config->lmem_obj) {
>  		xe_bo_unpin_map_no_vm(config->lmem_obj);
>  		config->lmem_obj = NULL;
> +		released = true;
>  	}
> +	return released;
>  }
>  
>  static int pf_provision_vf_lmem(struct xe_gt *gt, unsigned int vfid, u64 size)
> @@ -2021,12 +2025,13 @@ static void pf_release_vf_config(struct xe_gt *gt, unsigned int vfid)
>  {
>  	struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
>  	struct xe_device *xe = gt_to_xe(gt);
> +	bool released;
NIT: The variable “relased” only applies to lmem so could be declared in the IS_DGFX scope.


>  
>  	if (xe_gt_is_main_type(gt)) {
>  		pf_release_vf_config_ggtt(gt, config);
>  		if (IS_DGFX(xe)) {
> -			pf_release_vf_config_lmem(gt, config);
> -			if (xe_device_has_lmtt(xe))
> +			released = pf_release_vf_config_lmem(gt, config);
> +			if (released && xe_device_has_lmtt(xe))
>  				pf_update_vf_lmtt(xe, vfid);
>  		}
>  	}


LGTM:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski at intel.com>
> -- 
> 2.47.1
> 

-- 


More information about the Intel-xe mailing list