[PATCH i-g-t] i915/i915_pm_rc6_residency: Make ringbuffer rc6 fast

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

 



The legacy ringbuffer submission lacks a fast soft-rc6
mechanism as we have no interrupt for an idle ring. As such
we are at the mercy of HW RC6... which is not quite as
precise as we need to pass this test. Oh well.

Since HW is not fast enough to minimise power draw, tell the driver to
park as soon as we know we are idle. One day, we hope for the driver to
discover a mechanism to do this for itself, for as this test shows that
can save us Watts!

Closes: https://gitlab.freedesktop.org/drm/intel/issues/1516
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
---
 tests/i915/i915_pm_rc6_residency.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tests/i915/i915_pm_rc6_residency.c b/tests/i915/i915_pm_rc6_residency.c
index f507f76bc..d2dc37a16 100644
--- a/tests/i915/i915_pm_rc6_residency.c
+++ b/tests/i915/i915_pm_rc6_residency.c
@@ -310,6 +310,17 @@ static void bg_load(int i915, unsigned int flags, unsigned long *ctl)
 		}
 		ctl[1]++;
 
+		/*
+		 * The legacy ringbuffer submission lacks a fast soft-rc6
+		 * mechanism as we have no interrupt for an idle ring. As such
+		 * we are at the mercy of HW RC6... which is not quite as
+		 * precise as we need to pass this test. Oh well.
+		 *
+		 * Fake it until we make it.
+		 */
+		if (!gem_has_execlists(i915))
+			igt_drop_caches_set(i915, DROP_IDLE);
+
 		usleep(igt_nsec_elapsed(&tv) / 10); /* => 1% busy */
 	} while (!READ_ONCE(*ctl));
 }
-- 
2.26.0.rc2

_______________________________________________
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