All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: intel-xe@lists.freedesktop.org,
	"Piotr Piórkowski" <piotr.piorkowski@intel.com>
Subject: Re: [PATCH] drm/xe/pf: Assert LMEM provisioning is done only on DGFX
Date: Fri, 7 Jun 2024 12:08:58 -0400	[thread overview]
Message-ID: <ZmMwmm1H2ylPCKa1@intel.com> (raw)
In-Reply-To: <20240607153155.1592-1-michal.wajdeczko@intel.com>

On Fri, Jun 07, 2024 at 05:31:55PM +0200, Michal Wajdeczko wrote:
> The Local Memory (aka VRAM) is only available on DGFX platforms.
> We shouldn't attempt to provision VFs with LMEM or attempt to
> update the LMTT on non-DGFX platforms. Add missing asserts that
> would enforce that and fix release code that could crash on iGFX
> due to uninitialized LMTT.
> 

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> Fixes: c063cce7df3a ("drm/xe/pf: Update the LMTT when freeing VF GT config")
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Piotr Piórkowski <piotr.piorkowski@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 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 f49fc2917f93..694671497f6e 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
> @@ -1290,6 +1290,9 @@ static void pf_reset_vf_lmtt(struct xe_device *xe, unsigned int vfid)
>  	struct xe_tile *tile;
>  	unsigned int tid;
>  
> +	xe_assert(xe, IS_DGFX(xe));
> +	xe_assert(xe, IS_SRIOV_PF(xe));
> +
>  	for_each_tile(tile, xe, tid) {
>  		lmtt = &tile->sriov.pf.lmtt;
>  		xe_lmtt_drop_pages(lmtt, vfid);
> @@ -1308,6 +1311,9 @@ static int pf_update_vf_lmtt(struct xe_device *xe, unsigned int vfid)
>  	unsigned int tid;
>  	int err;
>  
> +	xe_assert(xe, IS_DGFX(xe));
> +	xe_assert(xe, IS_SRIOV_PF(xe));
> +
>  	total = 0;
>  	for_each_tile(tile, xe, tid)
>  		total += pf_get_vf_config_lmem(tile->primary_gt, vfid);
> @@ -1353,6 +1359,7 @@ static int pf_update_vf_lmtt(struct xe_device *xe, unsigned int vfid)
>  
>  static void pf_release_vf_config_lmem(struct xe_gt *gt, struct xe_gt_sriov_config *config)
>  {
> +	xe_gt_assert(gt, IS_DGFX(gt_to_xe(gt)));
>  	xe_gt_assert(gt, !xe_gt_is_media_type(gt));
>  	lockdep_assert_held(xe_gt_sriov_pf_master_mutex(gt));
>  
> @@ -1371,6 +1378,7 @@ static int pf_provision_vf_lmem(struct xe_gt *gt, unsigned int vfid, u64 size)
>  	int err;
>  
>  	xe_gt_assert(gt, vfid);
> +	xe_gt_assert(gt, IS_DGFX(xe));
>  	xe_gt_assert(gt, !xe_gt_is_media_type(gt));
>  
>  	size = round_up(size, pf_get_lmem_alignment(gt));
> @@ -1838,11 +1846,14 @@ u32 xe_gt_sriov_pf_config_get_threshold(struct xe_gt *gt, unsigned int vfid,
>  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);
>  
>  	if (!xe_gt_is_media_type(gt)) {
>  		pf_release_vf_config_ggtt(gt, config);
> -		pf_release_vf_config_lmem(gt, config);
> -		pf_update_vf_lmtt(gt_to_xe(gt), vfid);
> +		if (IS_DGFX(xe)) {
> +			pf_release_vf_config_lmem(gt, config);
> +			pf_update_vf_lmtt(xe, vfid);
> +		}
>  	}
>  	pf_release_config_ctxs(gt, config);
>  	pf_release_config_dbs(gt, config);
> -- 
> 2.43.0
> 

  parent reply	other threads:[~2024-06-07 16:09 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-07 15:31 [PATCH] drm/xe/pf: Assert LMEM provisioning is done only on DGFX Michal Wajdeczko
2024-06-07 15:37 ` ✓ CI.Patch_applied: success for " Patchwork
2024-06-07 15:37 ` ✓ CI.checkpatch: " Patchwork
2024-06-07 15:38 ` ✓ CI.KUnit: " Patchwork
2024-06-07 15:57 ` ✓ CI.Build: " Patchwork
2024-06-07 16:00 ` ✓ CI.Hooks: " Patchwork
2024-06-07 16:01 ` ✓ CI.checksparse: " Patchwork
2024-06-07 16:08 ` Rodrigo Vivi [this message]
2024-06-07 16:53 ` ✓ CI.BAT: " Patchwork
2024-06-08  2:21 ` ✗ CI.FULL: failure " Patchwork
2024-06-08 16:14   ` Michal Wajdeczko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZmMwmm1H2ylPCKa1@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=michal.wajdeczko@intel.com \
    --cc=piotr.piorkowski@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.