From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
To: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 16/19] drm/i915/perf: Apply Wa_18013179988
Date: Mon, 19 Sep 2022 14:21:07 -0700 [thread overview]
Message-ID: <YyjdQ0rV1EoAofTP@unerlige-ril> (raw)
In-Reply-To: <87wna3uja4.wl-ashutosh.dixit@intel.com>
On Fri, Sep 16, 2022 at 02:00:19PM -0700, Dixit, Ashutosh wrote:
>On Fri, 16 Sep 2022 13:25:17 -0700, Umesh Nerlige Ramappa wrote:
>>
>> On Fri, Sep 16, 2022 at 12:57:19PM -0700, Dixit, Ashutosh wrote:
>> > On Fri, 16 Sep 2022 11:56:04 -0700, Umesh Nerlige Ramappa wrote:
>> >>
>> >> On Thu, Sep 15, 2022 at 10:16:30PM -0700, Dixit, Ashutosh wrote:
>> >> > On Tue, 23 Aug 2022 13:41:52 -0700, Umesh Nerlige Ramappa wrote:
>> >> >>
>> >> >
>> >> > Hi Umesh,
>> >> >
>> >> >> OA reports in the OA buffer contain an OA timestamp field that helps
>> >> >> user calculate delta between 2 OA reports. The calculation relies on the
>> >> >> CS timestamp frequency to convert the timestamp value to nanoseconds.
>> >> >> The CS timestamp frequency is a function of the CTC_SHIFT value in
>> >> >> RPM_CONFIG0.
>> >> >>
>> >> >> In DG2, OA unit assumes that the CTC_SHIFT is 3, instead of using the
>> >> >> actual value from RPM_CONFIG0. At the user level, this results in an
>> >> >> error in calculating delta between 2 OA reports since the OA timestamp
>> >> >> is not shifted in the same manner as CS timestamp.
>> >> >>
>> >> >> To resolve this, return actual OA timestamp frequency to the user in
>> >> >> i915_getparam_ioctl.
>> >> >
>> >> > Rather than exposing actual OA timestamp frequency to userspace (with the
>> >> > corresponding uapi change, specially if it's only DG2 and not all future
>> >> > products) questions about a couple of other options:
>> >> >
>> >> > Option 1. Can we set CTC_SHIFT in RPM_CONFIG0 to 3, so change GT freq to be the
>> >> > same as OA freq :-)
>> >> >
>> >> > The HSD seems to mention this:
>> >> > Is setting CTC SHIFT to 0b11 on driver init an acceptable W/A?
>> >> > Note: Changing the shift setting on live driver may break apps that are
>> >> > currently running (including desktop manager).
>> >> >
>> >> > Option 2. Is it possible to correct the timestamps in OA report headers to
>> >> > compensate for the difference between OA and GT frequencies (say when
>> >> > copying OA data to userspace)?
>> >> >
>> >> > Though not sure if this is preferable to having userspace do this.
>> >>
>> >> It does affect other platforms too. There's no guarantee on what the
>> >> CTC_SHIFT value would be for different platforms, so user would have to at
>> >> least query that somehow (maybe from i915). It's simpler for user to use
>> >> the exported OA frequency since it is also backwards compatible.
>> >
>> > Is Option 2 above feasible since it would stop propagating the change to
>> > various UMD's?
>>
>> Hmm, there is logic today that squashes context ids when doing oa buffer
>> filtering, but it does that on selective reports (i.e. if a gem_context is
>> passed).
>>
>> For this issue: for a 16MB OA buffer with 256 byte reports, that would be
>> an additional write of 262144 in the kmd (to smem). For 20us sampled OA
>> reports, it would be approx. 195 KB/s. Shouldn't be too much. Only 2
>> concerns:
>>
>> - the mmapped use case may break, but I don't see that being upstreamed.
>> We may have divergent solutions for upstream and internal.
>> - blocking/polling tests in IGT will be sensitive to this change on some
>> platforms and may need to be bolstered.
>
>If this correction/compensation in the kernel works out, even for internal
>too we could do the following:
>
>* For non-mmaped case, do the correction in the kernel and expose OA freq
> == GT freq (in the getparam ioctl)
>* For mmaped case expose the actual OA freq (!= GT freq)
>
>This will restrict the divergence only to the mmaped case (which we will
>probably not be able to upstream).
>
>>
>> I will give it a shot and get back,
We cannot tweak this in the OA report header since that will be out of
sync with the counters in the report. The other issue here is that the
bug also applies to MI_REPORT_PERF_COUNT, and KMD cannot do anything to
fix that. I would think this interface is the clean way to do this.
Thanks,
Umesh
>>
>> Thanks,
>> Umesh
>>
>> >
>> >> https://patchwork.freedesktop.org/patch/498917/?series=107633&rev=3 is
>> >> consumed by GPUvis. That reminds me, I should include the UMD links for the
>> >> patches with uapi changes.
>> >
>> > I was thinking more about UMD's which analayze OA data and who till now are
>> > probably assuming OA freq == GT freq and will now have to drop that
>> > assumption. So not sure how widespread would be these changes in
>> > the (multiple different?) UMD(s).
>> >
>> > Thanks.
>> > --
>> > Ashutosh
next prev parent reply other threads:[~2022-09-19 21:21 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-23 20:41 [Intel-gfx] [PATCH 00/19] Add DG2 OA support Umesh Nerlige Ramappa
2022-08-23 20:41 ` [Intel-gfx] [PATCH 01/19] drm/i915/perf: Fix OA filtering logic for GuC mode Umesh Nerlige Ramappa
2022-09-06 14:33 ` Lionel Landwerlin
2022-09-06 17:39 ` Umesh Nerlige Ramappa
2022-09-06 18:39 ` Lionel Landwerlin
2022-09-14 22:26 ` Umesh Nerlige Ramappa
2022-09-14 23:13 ` Umesh Nerlige Ramappa
2022-09-15 22:49 ` Umesh Nerlige Ramappa
2022-09-20 3:22 ` Dixit, Ashutosh
2022-09-22 3:51 ` Dixit, Ashutosh
2022-09-22 11:05 ` Lionel Landwerlin
2022-09-09 23:47 ` Dixit, Ashutosh
2022-09-13 3:08 ` Dixit, Ashutosh
2022-09-14 23:37 ` Umesh Nerlige Ramappa
2022-09-14 23:36 ` Umesh Nerlige Ramappa
2022-09-22 3:44 ` Dixit, Ashutosh
2022-09-22 3:49 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 02/19] drm/i915/perf: Add OA formats for DG2 Umesh Nerlige Ramappa
2022-09-06 19:35 ` Lionel Landwerlin
2022-09-06 19:46 ` Umesh Nerlige Ramappa
2022-09-06 19:59 ` Lionel Landwerlin
2022-09-13 15:40 ` Dixit, Ashutosh
2022-09-14 20:54 ` Umesh Nerlige Ramappa
2022-09-14 21:16 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 03/19] drm/i915/perf: Fix noa wait predication " Umesh Nerlige Ramappa
2022-09-20 0:35 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 04/19] drm/i915/perf: Determine gen12 oa ctx offset at runtime Umesh Nerlige Ramappa
2022-09-06 19:48 ` Lionel Landwerlin
2022-09-06 20:35 ` Umesh Nerlige Ramappa
2022-09-08 18:32 ` Lionel Landwerlin
2022-09-08 23:04 ` Umesh Nerlige Ramappa
2022-08-23 20:41 ` [Intel-gfx] [PATCH 05/19] drm/i915/perf: Enable commands per clock reporting in OA Umesh Nerlige Ramappa
2022-09-06 19:51 ` Lionel Landwerlin
2022-09-14 0:19 ` Dixit, Ashutosh
2022-09-15 0:04 ` Umesh Nerlige Ramappa
2022-08-23 20:41 ` [Intel-gfx] [PATCH 06/19] drm/i915/perf: Use helpers to process reports w.r.t. OA buffer size Umesh Nerlige Ramappa
2022-09-14 16:04 ` Dixit, Ashutosh
2022-09-14 18:19 ` Umesh Nerlige Ramappa
2022-09-14 19:07 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 07/19] drm/i915/perf: Simply use stream->ctx Umesh Nerlige Ramappa
2022-09-06 19:52 ` Lionel Landwerlin
2022-08-23 20:41 ` [Intel-gfx] [PATCH 08/19] drm/i915/perf: Move gt-specific data from i915->perf to gt->perf Umesh Nerlige Ramappa
2022-09-06 19:54 ` Lionel Landwerlin
2022-09-14 18:20 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 09/19] drm/i915/perf: Replace gt->perf.lock with stream->lock for file ops Umesh Nerlige Ramappa
2022-09-14 19:04 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 10/19] drm/i915/perf: Use gt-specific ggtt for OA and noa-wait buffers Umesh Nerlige Ramappa
2022-09-06 19:56 ` Lionel Landwerlin
2022-09-06 20:28 ` Umesh Nerlige Ramappa
2022-09-06 20:31 ` Lionel Landwerlin
2022-08-23 20:41 ` [Intel-gfx] [PATCH 11/19] drm/i915/perf: Store a pointer to oa_format in oa_buffer Umesh Nerlige Ramappa
2022-09-06 19:56 ` Lionel Landwerlin
2022-09-14 20:43 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 12/19] drm/i915/perf: Parse 64bit report header formats correctly Umesh Nerlige Ramappa
2022-09-16 0:47 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 13/19] drm/i915/perf: Add Wa_16010703925:dg2 Umesh Nerlige Ramappa
2022-09-16 1:08 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 14/19] drm/i915/perf: Add Wa_1608133521:dg2 Umesh Nerlige Ramappa
2022-08-29 14:04 ` Jani Nikula
2022-09-16 1:21 ` Dixit, Ashutosh
2022-09-16 18:19 ` Umesh Nerlige Ramappa
2022-08-23 20:41 ` [Intel-gfx] [PATCH 15/19] drm/i915/perf: Add Wa_1508761755:dg2 Umesh Nerlige Ramappa
2022-09-16 1:34 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 16/19] drm/i915/perf: Apply Wa_18013179988 Umesh Nerlige Ramappa
2022-09-16 5:16 ` Dixit, Ashutosh
2022-09-16 15:22 ` Dixit, Ashutosh
2022-09-16 19:04 ` Umesh Nerlige Ramappa
2022-09-16 18:56 ` Umesh Nerlige Ramappa
2022-09-16 19:57 ` Dixit, Ashutosh
2022-09-16 20:25 ` Umesh Nerlige Ramappa
2022-09-16 21:00 ` Dixit, Ashutosh
2022-09-19 21:21 ` Umesh Nerlige Ramappa [this message]
2022-09-20 1:24 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 17/19] drm/i915/perf: Save/restore EU flex counters across reset Umesh Nerlige Ramappa
2022-09-16 5:40 ` Dixit, Ashutosh
2022-08-23 20:41 ` [Intel-gfx] [PATCH 18/19] drm/i915/guc: Support OA when Wa_16011777198 is enabled Umesh Nerlige Ramappa
2022-09-16 21:41 ` Dixit, Ashutosh
2022-09-16 21:48 ` Umesh Nerlige Ramappa
2022-08-23 20:41 ` [Intel-gfx] [PATCH 19/19] drm/i915/perf: Enable OA for DG2 Umesh Nerlige Ramappa
2022-08-23 21:11 ` [Intel-gfx] [PATCH 02/19] drm/i915/perf: Add OA formats " Umesh Nerlige Ramappa
2022-08-23 21:12 ` [Intel-gfx] [PATCH 19/19] drm/i915/perf: Enable OA " Umesh Nerlige Ramappa
2022-08-23 22:07 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Add DG2 OA support (rev2) Patchwork
2022-08-23 22:07 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2022-08-23 0:03 [Intel-gfx] [PATCH 00/19] Add DG2 OA support Umesh Nerlige Ramappa
2022-08-23 0:03 ` [Intel-gfx] [PATCH 16/19] drm/i915/perf: Apply Wa_18013179988 Umesh Nerlige Ramappa
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=YyjdQ0rV1EoAofTP@unerlige-ril \
--to=umesh.nerlige.ramappa@intel.com \
--cc=ashutosh.dixit@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox