From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
To: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: igt-dev@lists.freedesktop.org
Subject: Re: [igt-dev] [PATCH i-g-t 14/23] i915/perf: Add a test for non-power-of-2 oa reports
Date: Tue, 20 Sep 2022 12:28:55 -0700 [thread overview]
Message-ID: <YyoUd4hBsuRTsi/Z@unerlige-ril> (raw)
In-Reply-To: <1d488a84-e6b0-3590-422b-ac4abaa970aa@intel.com>
On Tue, Sep 06, 2022 at 05:08:34PM +0300, Lionel Landwerlin wrote:
>On 23/08/2022 21:30, Umesh Nerlige Ramappa wrote:
>>Some OA report sizes are no longer a power of 2. Verify that such
>>reports can be correctly read across the OA buffer boundaries.
>>
>>Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>
>
>It seems you've disabled the load helper to avoid checking the content
>of the report?
yes, I think at the time this was added, there was only a media oa
format with an odd size and I thought we don't want to run render copy
with that. I think now we can enable the load since there are other
formats that are applicable here.
>
>I think the A counters should still be defined same as before and we
>could still check their value.
>
>
>>---
>> tests/i915/perf.c | 34 +++++++++++++++++++++++++---------
>> 1 file changed, 25 insertions(+), 9 deletions(-)
>>
>>diff --git a/tests/i915/perf.c b/tests/i915/perf.c
>>index d601eb36..3caf7cac 100644
>>--- a/tests/i915/perf.c
>>+++ b/tests/i915/perf.c
>>@@ -2681,7 +2681,7 @@ test_buffer_fill(void)
>> }
>> static void
>>-test_non_zero_reason(void)
>>+test_multi_buffer_fills(uint64_t format, uint64_t oa_buf_size, bool load)
>> {
>> /* ~20 micro second period */
>> int oa_exponent = max_oa_exponent_for_period_lte(20000);
>>@@ -2691,7 +2691,7 @@ test_non_zero_reason(void)
>> /* OA unit configuration */
>> DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
>>- DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
>>+ DRM_I915_PERF_PROP_OA_FORMAT, format,
>> DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
>> };
>> struct drm_i915_perf_open_param param = {
>>@@ -2700,7 +2700,9 @@ test_non_zero_reason(void)
>> .properties_ptr = to_user_pointer(properties),
>> };
>> struct drm_i915_perf_record_header *header;
>>- uint32_t buf_size = 3 * 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
>>+ size_t report_size = get_oa_format(format).size;
>>+ uint32_t buf_size = 3 * (oa_buf_size / report_size) *
>>+ (report_size + sizeof(struct drm_i915_perf_record_header));
>> uint8_t *buf = malloc(buf_size);
>> uint32_t total_len = 0, reports_lost;
>> const uint32_t *last_report;
>>@@ -2710,8 +2712,10 @@ test_non_zero_reason(void)
>> igt_debug("Ready to read about %u bytes\n", buf_size);
>>- load_helper_init();
>>- load_helper_run(HIGH);
>>+ if (load) {
>>+ load_helper_init();
>>+ load_helper_run(HIGH);
>>+ }
>> stream_fd = __perf_open(drm_fd, ¶m, true /* prevent_pm */);
>>@@ -2724,8 +2728,10 @@ test_non_zero_reason(void)
>> __perf_close(stream_fd);
>>- load_helper_stop();
>>- load_helper_fini();
>>+ if (load) {
>>+ load_helper_stop();
>>+ load_helper_fini();
>>+ }
>> igt_debug("Got %u bytes\n", total_len);
>>@@ -2747,7 +2753,7 @@ test_non_zero_reason(void)
>> if (last_report) {
>> sanity_check_reports(last_report, report,
>>- test_set->perf_oa_format);
>>+ format);
>> }
>> last_report = report;
>> break;
>>@@ -5137,6 +5143,14 @@ igt_main
>> igt_subtest("oa-formats")
>> test_oa_formats();
>>+ igt_describe("Test OA buffer for non power of 2 report sizes");
>>+ igt_subtest("non-power-of-2-oa-formats") {
>>+ igt_require(IS_DG2(devid));
>>+ test_multi_buffer_fills(I915_OA_FORMAT_A38u64_R2u64_B8_C8,
>>+ MAX_OA_BUF_SIZE,
>>+ false);
>>+ }
>
>
>We could actually iterator over non power of 2 report sizes :
>
>
>for (unsigned r = 0; r < ARRAY_SIZE(gen12_oa_formats); r++) {
>
> if (__builtin_popcount(gen12_oa_formats[r].size) == 1)
>
> continue;
>
> igt_describe("Test OA buffer for %s format",
>gen12_oa_formats[r].name);
>
> igt_subtest_f("oa-format-%s", gen12_oa_formats[r].name) {
>
> igt_require(intel_gen(devid) >= 12);
>
> test_multi_buffer_fills(r, MAX_OA_BUF_SIZE, false);
>
> }
will add,
Thanks,
Umesh
>
>}
>
>
>>+
>> igt_subtest("invalid-oa-exponent")
>> test_invalid_oa_exponent();
>> igt_subtest("low-oa-exponent-permissions")
>>@@ -5156,7 +5170,9 @@ igt_main
>> igt_subtest("non-zero-reason") {
>> /* Reason field is only available on Gen8+ */
>> igt_require(intel_gen(devid) >= 8);
>>- test_non_zero_reason();
>>+ test_multi_buffer_fills(test_set->perf_oa_format,
>>+ MAX_OA_BUF_SIZE,
>>+ true);
>> }
>> igt_subtest("disabled-read-error")
>
>
next prev parent reply other threads:[~2022-09-20 19:29 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-23 18:30 [igt-dev] [PATCH i-g-t 00/23] Add DG2 OA test Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 01/23] i915/perf: Check regularly if we are done reading reports Umesh Nerlige Ramappa
2022-09-06 12:49 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 02/23] i915/perf: Fix OA short_reads test Umesh Nerlige Ramappa
2022-09-06 12:50 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 03/23] i915/perf: Check return value from getparam Umesh Nerlige Ramappa
2022-09-06 12:52 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 04/23] i915/perf: Limit sseu-config tests for gen11 Umesh Nerlige Ramappa
2022-09-06 12:53 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 05/23] i915/perf: Bump timestamp tolerance for DG1 Umesh Nerlige Ramappa
2022-09-06 13:06 ` Lionel Landwerlin
2022-09-06 19:30 ` Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 06/23] i915/perf: Account for OA sampling interval in polling test Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 07/23] i915/perf: Add support for 64-bit counters Umesh Nerlige Ramappa
2022-09-06 13:05 ` Lionel Landwerlin
2022-09-06 19:37 ` Umesh Nerlige Ramappa
2022-09-06 20:02 ` Lionel Landwerlin
2022-09-06 20:58 ` Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 08/23] i915/perf: Define OA report types Umesh Nerlige Ramappa
2022-09-06 13:08 ` Lionel Landwerlin
2022-09-06 19:28 ` Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 09/23] i915/perf: Use ARRAY_SIZE consistently for num_properties Umesh Nerlige Ramappa
2022-09-06 13:10 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 10/23] i915/perf: Use gt in perf tests and lib Umesh Nerlige Ramappa
2022-09-06 13:13 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 11/23] i915/perf: Explicitly state rendercopy needs for a test Umesh Nerlige Ramappa
2022-09-06 13:26 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 12/23] i915/perf: Skip tests that use rendercopy Umesh Nerlige Ramappa
2022-09-06 13:28 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 13/23] i915/perf: Add OA formats for DG2 Umesh Nerlige Ramappa
2022-09-06 13:30 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 14/23] i915/perf: Add a test for non-power-of-2 oa reports Umesh Nerlige Ramappa
2022-09-06 14:08 ` Lionel Landwerlin
2022-09-20 19:28 ` Umesh Nerlige Ramappa [this message]
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 15/23] i915/perf: Fix CS timestamp vs OA timstamp mismatch Umesh Nerlige Ramappa
2022-09-06 13:36 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 16/23] i915/perf: Treat ticks as 64 bit Umesh Nerlige Ramappa
2022-09-06 14:08 ` Lionel Landwerlin
2022-09-06 18:56 ` Umesh Nerlige Ramappa
2022-09-06 19:06 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 17/23] i915/perf: Treat timestamp as 64 bit value Umesh Nerlige Ramappa
2022-09-06 14:16 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 18/23] i915/perf: Fix DG2 A0 report header Umesh Nerlige Ramappa
2022-09-06 14:17 ` Lionel Landwerlin
2022-09-06 18:37 ` Umesh Nerlige Ramappa
2022-09-06 18:54 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 19/23] i915/perf: Wait longer for rc6 residency in DG2 Umesh Nerlige Ramappa
2022-09-06 14:18 ` Lionel Landwerlin
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 20/23] lib/i915/perf: implement report accumulation for new format Umesh Nerlige Ramappa
2022-09-06 14:21 ` Lionel Landwerlin
2022-09-20 20:02 ` Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 21/23] lib/i915/perf: fixup conversion script for XEHPSDV Umesh Nerlige Ramappa
2022-09-20 20:03 ` Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 22/23] lib/i915/perf: make warning message more helpful Umesh Nerlige Ramappa
2022-09-20 20:04 ` Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 23/23] lib/i915/perf: Add DG2 metrics Umesh Nerlige Ramappa
2022-09-20 23:11 ` Umesh Nerlige Ramappa
2022-08-23 20:30 ` [igt-dev] [PATCH i-g-t 18/23] i915/perf: Fix DG2 A0 report header Umesh Nerlige Ramappa
2022-09-06 14:23 ` Lionel Landwerlin
2022-09-06 18:33 ` Umesh Nerlige Ramappa
2022-08-23 21:00 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Add DG2 OA test Patchwork
2022-08-24 9:33 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Add DG2 OA test (rev2) Patchwork
2022-08-24 9:58 ` Petri Latvala
2022-08-24 13:08 ` [igt-dev] ✓ Fi.CI.BAT: success for Add DG2 OA test (rev3) Patchwork
2022-08-25 20:33 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2022-08-22 23:56 [igt-dev] [PATCH i-g-t 00/23] Add DG2 OA test Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 14/23] i915/perf: Add a test for non-power-of-2 oa reports 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=YyoUd4hBsuRTsi/Z@unerlige-ril \
--to=umesh.nerlige.ramappa@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=lionel.g.landwerlin@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.