All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Siddiqui, Ayaz A" <ayaz.siddiqui@intel.com>
To: "Roper, Matthew D" <matthew.d.roper@intel.com>
Cc: "intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"S, Srinivasan" <srinivasan.s@intel.com>,
	"Wilson, Chris P" <chris.p.wilson@intel.com>
Subject: Re: [Intel-gfx] [PATCH V3 2/8] drm/i915/gt: Add support of mocs auxiliary registers programming
Date: Thu, 2 Sep 2021 18:49:01 +0000	[thread overview]
Message-ID: <BL3PR11MB57460D33DCEF3D3D86D793D0FCCE9@BL3PR11MB5746.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210902160601.GJ461228@mdroper-desk1.amr.corp.intel.com>



> -----Original Message-----
> From: Roper, Matthew D <matthew.d.roper@intel.com>
> Sent: Thursday, September 2, 2021 9:36 PM
> To: Siddiqui, Ayaz A <ayaz.siddiqui@intel.com>
> Cc: intel-gfx@lists.freedesktop.org; S, Srinivasan <srinivasan.s@intel.com>;
> Wilson, Chris P <chris.p.wilson@intel.com>
> Subject: Re: [PATCH V3 2/8] drm/i915/gt: Add support of mocs auxiliary
> registers programming
> 
> On Thu, Sep 02, 2021 at 04:56:18AM -0700, Siddiqui, Ayaz A wrote:
> ...
> > > > +static int check_aux_regs(struct intel_engine_cs *engine,
> > > > +                     const struct drm_i915_aux_table *r,
> > > > +                     u32 **vaddr)
> > >
> > > One other concern (which is part of why I didn't really want to see
> > > this framework handled separately from workarounds) is that the aux
> > > table might tell us to program a register with a specific value, but
> > > we may also have a hardware workaround for a platform/stepping that
> > > overrides that with an alternate value.  Our workaround framework is
> > > smart enough to combine multiple entries for the same register into
> > > a single operation (if the set of bits being updated are different),
> > > or will warn if there's two conflicting sets of programming
> > > requested for certain bits. Right now it's not clear who wins if the
> > > aux table wants to program a register to value 'X' but the
> > > workaround lists want to program the same register to value 'Y.'  In
> > > theory the workaround should overrule the regular programming, but
> > > at the moment these selftests aren't checking to see if that's the
> > > case.  We may not have any such conflicts today (especially since we have
> so few registers that are going to be on the aux table initially), but it may
> come up eventually.
> > Yes its valid point, I did not thought about it. Do you think that
> > moving to workaround will be better option here?
> 
> I think there's a short-term and a long-term aspect here.  My opinion is that
> in the immediate short term we should add these two MOCS-related
> registers (one of which is a context register, one of which is an engine
> register) as additional fake workarounds.  Despite calling them
> "workarounds" that part of the code is already more of a generic "GT register
> override" framework, and we already have a number of things programmed
> there that aren't actually workarounds.  Trying to spin up a completely new
> framework ("aux table") for GT register overrides is going to take a bit more
> time to get right, and I'm not sure we want to hold up the proper MOCS
> programming while that happens (especially since ADL is about to leave
> "force probe required" state and we really don't want to miss the boat on
> getting MOCS programmed correctly before that happens).
> 
> Longer term I do think we want to rework how we handle both formal
> workarounds and non-workaround register overrides in the driver.  That's
> been something I've been meaning to work on for quite a while now, but it
> just keeps getting preempted by higher priority tasks that show up;
> hopefully I can get back to it soon.  But such rework is going to take a bit of
> time, both to get widespread agreement on the redesign, and to do some
> extensive testing to make sure we don't mishandle any corner cases around
> reset handling, execlist vs GuC, etc.  It will also probably happen in multiple
> steps rather than jumping from our current design straight to the final form; I
> don't think it makes sense to make the MOCS programming dependent on
> completion of that long, multi-step process.
> 
> I think one of Chris' concerns about re-using the workaround framework for
> setting these two MOCS-related registers is that the programming would
> wind up getting verified by the workarounds selftest rather than the mocs
> selftest (and thus failures on these specific registers may not get the
> attention they need).  That's true, but if the concern is great enough, I think
> we could make the gt_mocs selftest:
>  - scan the workaround lists and ensure that the two MOCS-related
>    registers truly are present on the appropriate list (if not, error)
>  - check that the register programming still matches the value defined
>    in the workaround (if not, error); this would duplicate the check
>    also done in the workaround selftest, but that's probably fine to
>    have both tests fail if there's a programming problem
>  - lookup the programmed MOCS values in the platform's MOCS table and
>    make sure that they really have the expected characteristics (L3 on
>    platforms going forward, UC on the older platforms that we can't
>    change now for abi compat reasons)
> 
> 
> Matt
Thanks Matt, I have modified that register programming using workaround framework.
I'll share the new series soon.
Since we have already planned to rework on framework so let add category specific
verification in scope of that planned activity instead of adding a temporary
verification in mocs selftest.
Meanwhile programming of values are already verified in workaround.

Regards
-Ayaz


> 
> --
> Matt Roper
> Graphics Software Engineer
> VTT-OSGC Platform Enablement
> Intel Corporation
> (916) 356-2795

  reply	other threads:[~2021-09-02 18:49 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-30 16:22 [Intel-gfx] [PATCH V3 0/8] drm/i915/gt: Initialize unused MOCS entries to L3_WB Ayaz A Siddiqui
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 1/8] drm/i915/gt: Add support of mocs propagation Ayaz A Siddiqui
2021-09-01 17:56   ` Matt Roper
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 2/8] drm/i915/gt: Add support of mocs auxiliary registers programming Ayaz A Siddiqui
2021-08-30 21:50   ` kernel test robot
2021-08-30 21:50     ` kernel test robot
2021-08-30 23:55   ` kernel test robot
2021-08-30 23:55     ` kernel test robot
2021-08-31  0:42   ` kernel test robot
2021-08-31  0:42     ` kernel test robot
2021-08-31  4:03   ` kernel test robot
2021-08-31  4:03     ` kernel test robot
2021-08-31  4:03   ` [Intel-gfx] [RFC PATCH] drm/i915/gt: get_ctx_reg_count() can be static kernel test robot
2021-08-31  4:03     ` kernel test robot
2021-09-01 16:48   ` [Intel-gfx] [PATCH V3 2/8] drm/i915/gt: Add support of mocs auxiliary registers programming kernel test robot
2021-09-01 16:48     ` kernel test robot
2021-09-01 16:48   ` [Intel-gfx] [RFC PATCH] drm/i915/gt: fix duplicated inclusion kernel test robot
2021-09-01 16:48     ` kernel test robot
2021-09-01 21:24   ` [Intel-gfx] [PATCH V3 2/8] drm/i915/gt: Add support of mocs auxiliary registers programming Matt Roper
2021-09-02 11:56     ` Siddiqui, Ayaz A
2021-09-02 16:06       ` Matt Roper
2021-09-02 18:49         ` Siddiqui, Ayaz A [this message]
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 3/8] drm/i915/gt: Set CMD_CCTL to UC for Gen12 Onward Ayaz A Siddiqui
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 4/8] drm/i915/gt: Set BLIT_CCTL reg to un-cached Ayaz A Siddiqui
2021-09-01 23:21   ` Matt Roper
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 5/8] drm/i915/gt: Initialize unused MOCS entries with device specific values Ayaz A Siddiqui
2021-09-01 23:45   ` Matt Roper
2021-09-02  6:37     ` Siddiqui, Ayaz A
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 6/8] drm/i95/adl: Define MOCS table for Alderlake Ayaz A Siddiqui
2021-09-01 23:49   ` Matt Roper
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 7/8] drm/i915/gt: Initialize L3CC table in mocs init Ayaz A Siddiqui
2021-09-02  0:16   ` Matt Roper
2021-09-02 18:25     ` Siddiqui, Ayaz A
2021-08-30 16:22 ` [Intel-gfx] [PATCH V3 8/8] drm/i915/selftest: Remove Renderer class check for l3cc table read Ayaz A Siddiqui
2021-09-02  0:27   ` Matt Roper
2021-08-30 18:07 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/gt: Initialize unused MOCS entries to L3_WB Patchwork
2021-08-30 18:37 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-08-30 20:14 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

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=BL3PR11MB57460D33DCEF3D3D86D793D0FCCE9@BL3PR11MB5746.namprd11.prod.outlook.com \
    --to=ayaz.siddiqui@intel.com \
    --cc=chris.p.wilson@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=matthew.d.roper@intel.com \
    --cc=srinivasan.s@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.