Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Lucas De Marchi <lucas.demarchi@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>,
	Lucas De Marchi <lucas.demarchi@intel.com>
Subject: [PATCH i-g-t v3 01/10] tests/intel/xe_drm_fdinfo: Extend mercy to the upper end
Date: Tue, 27 Aug 2024 09:54:40 -0700	[thread overview]
Message-ID: <20240827165449.1706784-2-lucas.demarchi@intel.com> (raw)
In-Reply-To: <20240827165449.1706784-1-lucas.demarchi@intel.com>

When we are processing the fdinfo of each client, the gpu time is read
first, and then later all the exec queues are accumulated. It's thus
possible that the total gpu time is smaller than the time reported in
the exec queues. A preemption in the middle of second sample would
exaggerate the problem:
				  total_cycles	      cycles
	s1: read exec queues times			*
	s1: read gpu time		|		*
	.				|		*
	.				|		*
	.				|		*
	-> xe_spin_end()		|		*
	s2: read exec queues times	|
	s2: read gpu time		|

There's nothing guaranteeing and atomic read between the gpu time and
exec_queue time in either s1 or s2. Due to the call to xe_spin_end(),
in which exec_queue tick stops and gpu tick continues, it's much more
likely delta_total_cycles > cycles. However, if there was any additional
delay between the readout in s1, it could also go the other way.

In a more realistic situation, as reported in CI:

	(xe_drm_fdinfo:1072) DEBUG: rcs: sample 1: cycles 29223333, total_cycles 5801623069
	(xe_drm_fdinfo:1072) DEBUG: rcs: sample 2: cycles 38974256, total_cycles 5811276365
	(xe_drm_fdinfo:1072) DEBUG: rcs: percent: 101.000000

Extend the same mercy to the upper end as we did to the lower end.
This also matches the tolerance applied on the i915 side in
tests/intel/drm_fdinfo.c:__assert_within_epsilon().

v2: Fix the commit message since the problem is actually on sample1, not
    sample2

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 tests/intel/xe_drm_fdinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/intel/xe_drm_fdinfo.c b/tests/intel/xe_drm_fdinfo.c
index 4696c6495..e3a99a2dc 100644
--- a/tests/intel/xe_drm_fdinfo.c
+++ b/tests/intel/xe_drm_fdinfo.c
@@ -484,7 +484,7 @@ check_results(struct pceu_cycles *s1, struct pceu_cycles *s2,
 	igt_debug("%s: percent: %f\n", engine_map[class], percent);
 
 	if (flags & TEST_BUSY)
-		igt_assert(percent >= 95 && percent <= 100);
+		igt_assert(percent >= 95 && percent <= 105);
 	else
 		igt_assert(!percent);
 }
-- 
2.43.0


  reply	other threads:[~2024-08-27 16:54 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-27 16:54 [PATCH i-g-t v3 00/10] tests/intel/xe_drm_fdinfo: Fix noise and improve Lucas De Marchi
2024-08-27 16:54 ` Lucas De Marchi [this message]
2024-08-28 14:44   ` [PATCH i-g-t v3 01/10] tests/intel/xe_drm_fdinfo: Extend mercy to the upper end Nirmoy Das
2024-08-28 14:46     ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 02/10] tests/intel/xe_drm_fdinfo: Print timestamp for debug Lucas De Marchi
2024-08-28 14:45   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 03/10] lib/igt_core: Add igt_assert_lt_double() Lucas De Marchi
2024-08-28 14:46   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 04/10] tests/intel/xe_drm_fdinfo: Use igt_assert_lt_double() Lucas De Marchi
2024-08-28 14:48   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 05/10] tests/intel/xe_drm_fdinfo: Be strict on == 0 comparison Lucas De Marchi
2024-08-28 14:51   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 06/10] tests/intel/xe_drm_fdinfo: Use usec for batch duration Lucas De Marchi
2024-08-28 14:51   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 07/10] tests/intel/xe_drm_fdinfo: Half the execution time Lucas De Marchi
2024-08-28 14:52   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 08/10] tests/intel/xe_drm_fdinfo: Remove unused flags Lucas De Marchi
2024-08-28 15:00   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 09/10] tests/intel/xe_drm_fdinfo: Use enum with expected load Lucas De Marchi
2024-08-28 14:56   ` Nirmoy Das
2024-08-27 16:54 ` [PATCH i-g-t v3 10/10] tests/intel/xe_drm_fdinfo: Rename and reorder tests Lucas De Marchi
2024-08-28 15:08   ` Nirmoy Das
2024-08-28 15:14     ` Nirmoy Das
2024-08-27 18:27 ` ✓ CI.xeBAT: success for tests/intel/xe_drm_fdinfo: Fix noise and improve (rev2) Patchwork
2024-08-27 18:38 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-08-28  4:05 ` ✗ CI.xeFULL: " 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=20240827165449.1706784-2-lucas.demarchi@intel.com \
    --to=lucas.demarchi@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=umesh.nerlige.ramappa@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox