[PATCH 1/3] drm/xe/vf: Introduce helpers to access GGTT configuration

Lis, Tomasz tomasz.lis at intel.com
Mon Jun 2 23:32:31 UTC 2025


On 02.06.2025 12:33, Michal Wajdeczko wrote:
> In upcoming patch we want to separate tile-oriented VF functions
> from GT-oriented functions and to allow the former access a GGTT
> configuration stored at GT level we need to provide some helpers.
>
> Signed-off-by: Michal Wajdeczko<michal.wajdeczko at intel.com>
> Cc: Tomasz Lis<tomasz.lis at intel.com>

We're not changing `xe_gt_sriov_vf_balloon_ggtt_locked()` to use the new 
getters,

instead we're making the change when moving the function to 
`xe_tile_sriov_vf_balloon_ggtt_locked()`

in the next patch. No problem with that. So:

Reviewed-by: Tomasz Lis<tomasz.lis at intel.com>

-Tomasz

> ---
>   drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 34 +++++++++++++++++++++++++++++
>   drivers/gpu/drm/xe/xe_gt_sriov_vf.h |  5 ++++-
>   2 files changed, 38 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> index 4ff7ae1a5f16..acfb3b1b0832 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> @@ -561,6 +561,40 @@ u64 xe_gt_sriov_vf_lmem(struct xe_gt *gt)
>   	return gt->sriov.vf.self_config.lmem_size;
>   }
>   
> +/**
> + * xe_gt_sriov_vf_ggtt - VF GGTT configuration.
> + * @gt: the &xe_gt
> + *
> + * This function is for VF use only.
> + *
> + * Return: size of the GGTT assigned to VF.
> + */
> +u64 xe_gt_sriov_vf_ggtt(struct xe_gt *gt)
> +{
> +	xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt)));
> +	xe_gt_assert(gt, gt->sriov.vf.guc_version.major);
> +	xe_gt_assert(gt, gt->sriov.vf.self_config.ggtt_size);
> +
> +	return gt->sriov.vf.self_config.ggtt_size;
> +}
> +
> +/**
> + * xe_gt_sriov_vf_ggtt_base - VF GGTT base offset.
> + * @gt: the &xe_gt
> + *
> + * This function is for VF use only.
> + *
> + * Return: base offset of the GGTT assigned to VF.
> + */
> +u64 xe_gt_sriov_vf_ggtt_base(struct xe_gt *gt)
> +{
> +	xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt)));
> +	xe_gt_assert(gt, gt->sriov.vf.guc_version.major);
> +	xe_gt_assert(gt, gt->sriov.vf.self_config.ggtt_size);
> +
> +	return gt->sriov.vf.self_config.ggtt_base;
> +}
> +
>   /**
>    * xe_gt_sriov_vf_ggtt_shift - Return shift in GGTT range due to VF migration
>    * @gt: the &xe_gt struct instance
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> index 9db41afddd5a..2f96ac0c5dca 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> @@ -20,7 +20,6 @@ int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
>   int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt);
>   int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt);
>   void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt);
> -s64 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt);
>   void xe_gt_sriov_vf_fixup_ggtt_nodes(struct xe_gt *gt, s64 shift);
>   int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
>   void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
> @@ -28,6 +27,10 @@ void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
>   u32 xe_gt_sriov_vf_gmdid(struct xe_gt *gt);
>   u16 xe_gt_sriov_vf_guc_ids(struct xe_gt *gt);
>   u64 xe_gt_sriov_vf_lmem(struct xe_gt *gt);
> +u64 xe_gt_sriov_vf_ggtt(struct xe_gt *gt);
> +u64 xe_gt_sriov_vf_ggtt_base(struct xe_gt *gt);
> +s64 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt);
> +
>   u32 xe_gt_sriov_vf_read32(struct xe_gt *gt, struct xe_reg reg);
>   void xe_gt_sriov_vf_write32(struct xe_gt *gt, struct xe_reg reg, u32 val);
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-xe/attachments/20250603/dbd835b3/attachment-0001.htm>


More information about the Intel-xe mailing list