[PATCH v2] drm/xe/guc: Set wedged on Xe micro hardware initialization error
Summers, Stuart
stuart.summers at intel.com
Wed Jun 11 18:48:12 UTC 2025
On Wed, 2025-06-11 at 20:45 +0200, Michal Wajdeczko wrote:
>
>
> On 11.06.2025 19:24, Summers, Stuart wrote:
> > On Wed, 2025-06-04 at 19:45 -0400, Zhanjun Dong wrote:
> > > Declare wedged on Xe micro controller hardware initialization
> > > failed.
> > >
> > > Signed-off-by: Zhanjun Dong <zhanjun.dong at intel.com>
> > > Closes:
> > > https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/4917
> > >
> > > ---
> > > Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> > >
> > > Change list:
> > > v2: Remove unnecessary jump to err-out
> > > Drop disable ct, swtich to set wedge
>
> typo swtich
>
> > > ---
> > > drivers/gpu/drm/xe/xe_uc.c | 21 ++++++++++++++-------
> > > 1 file changed, 14 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_uc.c
> > > b/drivers/gpu/drm/xe/xe_uc.c
> > > index 3a8751a8b92d..bd1d4e8fab7e 100644
> > > --- a/drivers/gpu/drm/xe/xe_uc.c
> > > +++ b/drivers/gpu/drm/xe/xe_uc.c
> > > @@ -13,6 +13,7 @@
> > > #include "xe_gt_printk.h"
> > > #include "xe_gt_sriov_vf.h"
> > > #include "xe_guc.h"
> > > +#include "xe_guc_ct.h"
>
> do we need this?
>
> > > #include "xe_guc_pc.h"
> > > #include "xe_guc_engine_activity.h"
> > > #include "xe_huc.h"
> > > @@ -157,19 +158,22 @@ static int vf_uc_init_hw(struct xe_uc *uc)
> > >
> > > err = xe_guc_enable_communication(&uc->guc);
> > > if (err)
> > > - return err;
> > > + goto err_out;
> > >
> > > err = xe_gt_sriov_vf_connect(uc_to_gt(uc));
> > > if (err)
> > > - return err;
> > > + goto err_out;
> > >
> > > uc->guc.submission_state.enabled = true;
> > >
> > > err = xe_gt_record_default_lrcs(uc_to_gt(uc));
> > > if (err)
> > > - return err;
> > > + goto err_out;
> > >
> > > return 0;
> > > +err_out:
> > > + xe_device_declare_wedged(uc_to_xe(uc));
> >
> > On the VF side should we be reducing the scope for this? Is there a
> > way
> > to mark the VF as wedged?
>
> "wedged" is more a driver software state, so VF should be able to
> declare it too, even if this is just from this VF driver POV
Ok makes sense and thanks for the reply here Michal.
With the fixes in place Michal had suggested:
Reviewed-by: Stuart Summers <stuart.summers at intel.com>
>
> >
> > Thanks,
> > Stuart
> >
> > > + return err;
> > > }
> > >
> > > /*
> > > @@ -197,19 +201,19 @@ int xe_uc_init_hw(struct xe_uc *uc)
> > >
> > > ret = xe_guc_enable_communication(&uc->guc);
> > > if (ret)
> > > - return ret;
> > > + goto err_out;
> > >
> > > ret = xe_gt_record_default_lrcs(uc_to_gt(uc));
> > > if (ret)
> > > - return ret;
> > > + goto err_out;
> > >
> > > ret = xe_guc_post_load_init(&uc->guc);
> > > if (ret)
> > > - return ret;
> > > + goto err_out;
> > >
> > > ret = xe_guc_pc_start(&uc->guc.pc);
> > > if (ret)
> > > - return ret;
> > > + goto err_out;
> > >
> > > xe_guc_engine_activity_enable_stats(&uc->guc);
> > >
> > > @@ -221,6 +225,9 @@ int xe_uc_init_hw(struct xe_uc *uc)
> > > xe_gsc_load_start(&uc->gsc);
> > >
> > > return 0;
>
> nit: new line here
>
> > > +err_out:
> > > + xe_device_declare_wedged(uc_to_xe(uc));
> > > + return ret;
> > > }
> > >
> > > int xe_uc_fini_hw(struct xe_uc *uc)
> >
>
More information about the Intel-xe
mailing list