[PATCH i-g-t] i915/i915_pm_rc6_residency: Relax tolerance for HW RC6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ringbuffer HW RC6 is not as fast as soft-rc6 on execlists, as it must
always wait for an EI before entering RC6 and does not benefit from an
interrupt generated when the rings go idle (so no immediate parking).
Our goal with the test is to make sure that we do enter rc6 under very
light workloads, so increase the tolerance slightly.

fi-cfl-guc: 2.84
fi-kbl-8809g: 2.76
fi-kbl-x1275: 2.81
fi-skl-6770hq: 2.79
fi-skl-lmem: 2.85
fi-hsw-4770: 2.65
fi-hsw-4770r: 2.64
fi-hsw-peppy: 2.65
fi-ivb-3770: 0 (awooga, awooga, awooga!)
fi-snb-2520m: 2.66
fi-snb-2600: 2.64

Worst case among an idle run is 88%, so set our tolerance to 20%.

Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
---
 tests/i915/i915_pm_rc6_residency.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/i915/i915_pm_rc6_residency.c b/tests/i915/i915_pm_rc6_residency.c
index c801a5f60..6a714cab8 100644
--- a/tests/i915/i915_pm_rc6_residency.c
+++ b/tests/i915/i915_pm_rc6_residency.c
@@ -283,6 +283,7 @@ static int open_pmu(int i915, uint64_t config)
 static void rc6_idle(int i915)
 {
 	const int64_t duration_ns = SLEEP_DURATION * (int64_t)NSEC_PER_SEC;
+	const int tolerance = 20; /* Some RC6 is better than none! */
 	unsigned long slept, cycles;
 	unsigned long *done;
 	uint64_t rc6, ts[2];
@@ -339,7 +340,7 @@ static void rc6_idle(int i915)
 	close(fd);
 
 	igt_assert(cycles >= SLEEP_DURATION); /* At least one wakeup/s needed */
-	assert_within_epsilon(rc6, ts[1] - ts[0], 5);
+	assert_within_epsilon(rc6, ts[1] - ts[0], tolerance);
 }
 
 igt_main
-- 
2.25.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux