From: Nirmoy Das <nirmoy.das@linux.intel.com>
To: "Cavitt, Jonathan" <jonathan.cavitt@intel.com>,
Andi Shyti <andi.shyti@linux.intel.com>
Cc: Intel GFX <intel-gfx@lists.freedesktop.org>,
"Roper, Matthew D" <matthew.d.roper@intel.com>,
Chris Wilson <chris@chris-wilson.co.uk>
Subject: Re: [Intel-gfx] [PATCH v2 2/4] drm/i915/gt: Ensure memory quiesced before invalidation
Date: Thu, 13 Jul 2023 11:31:00 +0200 [thread overview]
Message-ID: <5e1c14e9-ddd2-bd64-eab5-aeed05d36004@linux.intel.com> (raw)
In-Reply-To: <CH0PR11MB54440BB204DF21FC6EAEA9B9E536A@CH0PR11MB5444.namprd11.prod.outlook.com>
On 7/12/2023 5:39 PM, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: Nirmoy Das <nirmoy.das@linux.intel.com>
> Sent: Wednesday, July 12, 2023 7:18 AM
> To: Andi Shyti <andi.shyti@linux.intel.com>; Cavitt, Jonathan <jonathan.cavitt@intel.com>
> Cc: Intel GFX <intel-gfx@lists.freedesktop.org>; Roper, Matthew D <matthew.d.roper@intel.com>; Chris Wilson <chris@chris-wilson.co.uk>; Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Subject: Re: [Intel-gfx] [PATCH v2 2/4] drm/i915/gt: Ensure memory quiesced before invalidation
>> Hi Andi and Jonathan,
>>
>> On 6/27/2023 11:43 AM, Andi Shyti wrote:
>>> From: Jonathan Cavitt <jonathan.cavitt@intel.com>
>>>
>>> All memory traffic must be quiesced before requesting
>>> an aux invalidation on platforms that use Aux CCS.
>>>
>>> Fixes: 972282c4cf24 ("drm/i915/gen12: Add aux table invalidate for all engines")
>>> Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
>>> Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
>>> Cc: <stable@vger.kernel.org> # v5.8+
>>> ---
>>> drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
>>> index 563efee055602..e10e1ad0e841f 100644
>>> --- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
>>> +++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
>>> @@ -202,6 +202,13 @@ int gen12_emit_flush_rcs(struct i915_request *rq, u32 mode)
>>> {
>>> struct intel_engine_cs *engine = rq->engine;
>>>
>>> + /*
>>> + * Aux invalidations on Aux CCS platforms require
>>> + * memory traffic is quiesced prior.
>> I see that we are doing aux inval on EMIT_INVALIDATE so it make sense to
>>
>> do if ((mode & EMIT_INVALIDATE) && !HAS_FLAT_CCS(engine->i915) )
>>
> This is agreeable, though I don't think there's any instances of us calling gen12_emit_flush_rcs with a blank mode,
> since that wouldn't accomplish anything. So I don't think the additional check/safety net is necessary, but it doesn't
> hurt to have.
>
>>> + */
>>> + if (!HAS_FLAT_CCS(engine->i915))
>>> + mode |= EMIT_FLUSH;
>> I think this generic EMIT_FLUSH is not enough. I seeing some missing
>> flags for PIPE_CONTROL
>>
>> As per https://gfxspecs.intel.com/Predator/Home/Index/43904. It makes
>> sense to move this to a
>>
>> new function given the complexity of PIPE_CONTROL flags requires for this.
>>
> I'm assuming when you're talking about the missing flags for PIPE_CONTROL, you're
> referring to CCS Flush, correct? Because every other flag is already covered in the
> EMIT_FLUSH path.
Yes, CCS Flush and I don't see a L3 fabric flush as well.
>
> I feel like I had this conversation with Matt while the internal version was
> developed back in February, and the consensus was that the CCS Flush
> requirement was already covered.
Wasn't aware of this, would be nice to have a confirmation and a comment
so we
don't get confused in future.
> On the other hand, it looks like the CCS Flush
> requirement was only recently added back in May, so it might be worth
> double-checking at the very least.
>
> Although... if CCS Flush is a missing flag, I wonder how we're supposed to set it,
> as there doesn’t appear to be a definition for such a flag in intel_gpu_commands.h...
Yes, not yet but we should add a flag for that.
Thanks,
Nirmoy
> -Jonathan Cavitt
>
>> Regards,
>>
>> Nirmoy
>>
>>
>>> +
>>> if (mode & EMIT_FLUSH) {
>>> u32 flags = 0;
>>> int err;
next prev parent reply other threads:[~2023-07-13 9:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-27 9:43 [Intel-gfx] [PATCH v2 0/4] Update AUX invalidation sequence Andi Shyti
2023-06-27 9:43 ` [Intel-gfx] [PATCH v2 1/4] drm/i915/gt: Cleanup aux invalidation registers Andi Shyti
2023-07-12 13:51 ` Nirmoy Das
2023-06-27 9:43 ` [Intel-gfx] [PATCH v2 2/4] drm/i915/gt: Ensure memory quiesced before invalidation Andi Shyti
2023-07-12 14:17 ` Nirmoy Das
2023-07-12 15:39 ` Cavitt, Jonathan
2023-07-13 9:31 ` Nirmoy Das [this message]
2023-07-13 12:31 ` Andi Shyti
2023-07-13 14:12 ` Nirmoy Das
2023-07-13 14:23 ` Cavitt, Jonathan
2023-07-14 10:24 ` Nirmoy Das
2023-06-27 9:43 ` [Intel-gfx] [PATCH v2 3/4] drm/i915/gt: Poll aux invalidation register bit on invalidation Andi Shyti
2023-07-12 14:24 ` Nirmoy Das
2023-06-27 9:43 ` [Intel-gfx] [PATCH v2 4/4] drm/i915/gt: Support aux invalidation on all engines Andi Shyti
2023-07-12 14:26 ` Nirmoy Das
2023-07-12 21:58 ` Andi Shyti
2023-06-27 15:53 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Update AUX invalidation sequence (rev2) Patchwork
2023-06-27 16:07 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-06-28 5:16 ` [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=5e1c14e9-ddd2-bd64-eab5-aeed05d36004@linux.intel.com \
--to=nirmoy.das@linux.intel.com \
--cc=andi.shyti@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jonathan.cavitt@intel.com \
--cc=matthew.d.roper@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.