[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