[Intel-xe] [PATCH 1/2 v3] drm/xe: Add infrastructure for per engine tuning
Matt Atwood
matthew.s.atwood at intel.com
Wed Sep 6 21:40:57 UTC 2023
On Thu, Aug 24, 2023 at 01:05:38PM -0700, Matt Roper wrote:
> On Wed, Aug 23, 2023 at 12:55:32PM -0700, Matt Atwood wrote:
> > Add the infrastructure that allows for per engine tuning preparation for
> > disable indirect state.
>
> I don't think we need this patch; there's nothing terribly complicated
> here so we might as well just squash it directly into the next patch
> that starts adding some entries.
originally was, however lucas asked for it to be split out.
>
> >
> > v3: rebase
> >
> > Signed-off-by: Matt Atwood <matthew.s.atwood at intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_hw_engine.c | 2 ++
> > drivers/gpu/drm/xe/xe_tuning.c | 12 ++++++++++++
> > drivers/gpu/drm/xe/xe_tuning.h | 1 +
> > 3 files changed, 15 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
> > index dd673a684b70..9dafc56d5fe8 100644
> > --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> > +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> > @@ -24,6 +24,7 @@
> > #include "xe_reg_sr.h"
> > #include "xe_rtp.h"
> > #include "xe_sched_job.h"
> > +#include "xe_tuning.h"
> > #include "xe_wa.h"
> >
> > #define MAX_MMIO_BASES 3
> > @@ -401,6 +402,7 @@ static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe,
> > }
> >
> > xe_reg_sr_init(&hwe->reg_sr, hwe->name, gt_to_xe(gt));
> > + xe_tuning_process_engine(gt);
> > xe_wa_process_engine(hwe);
> > hw_engine_setup_default_state(hwe);
> >
> > diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c
> > index 412e59de9842..702cb41dab53 100644
> > --- a/drivers/gpu/drm/xe/xe_tuning.c
> > +++ b/drivers/gpu/drm/xe/xe_tuning.c
> > @@ -27,6 +27,10 @@ static const struct xe_rtp_entry_sr gt_tunings[] = {
> > {}
> > };
> >
> > +static const struct xe_rtp_entry_sr engine_tunings[] = {
> > + {}
> > +};
> > +
> > static const struct xe_rtp_entry_sr lrc_tunings[] = {
> > { XE_RTP_NAME("Tuning: ganged timer, also known as 16011163337"),
> > XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210)),
> > @@ -65,6 +69,14 @@ void xe_tuning_process_gt(struct xe_gt *gt)
> > }
> > EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
> >
> > +void xe_tuning_process_engine(struct xe_gt *gt)
> > +{
> > + struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
> > +
> > + xe_rtp_process_to_sr(&ctx, engine_tunings, >->reg_sr);
> > +}
>
> It looks like you may have copied the GT function but forgot to update
> it for engine usage?
yes, seem to have copy pasted the wrong block, ack.
>
>
> Matt
>
> > +EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_engine);
> > +
> > /**
> > * xe_tuning_process_lrc - process lrc tunings
> > * @hwe: engine instance to process tunings for
> > diff --git a/drivers/gpu/drm/xe/xe_tuning.h b/drivers/gpu/drm/xe/xe_tuning.h
> > index 2b95b0c8effc..740cb1bd2f0a 100644
> > --- a/drivers/gpu/drm/xe/xe_tuning.h
> > +++ b/drivers/gpu/drm/xe/xe_tuning.h
> > @@ -10,6 +10,7 @@ struct xe_gt;
> > struct xe_hw_engine;
> >
> > void xe_tuning_process_gt(struct xe_gt *gt);
> > +void xe_tuning_process_engine(struct xe_gt *gt);
> > void xe_tuning_process_lrc(struct xe_hw_engine *hwe);
> >
> > #endif
> > --
> > 2.40.1
> >
>
> --
> Matt Roper
> Graphics Software Engineer
> Linux GPU Platform Enablement
> Intel Corporation
More information about the Intel-xe
mailing list