Commit 2fc64acf authored by Chris Wilson's avatar Chris Wilson 🤔

igt/perf_pmu: Tweak wait_for_rc6, yet again

Still CI remains obstinate that RC6 is not smoothly incrementing during
the sample period. Tweak the wait_for_rc6() to first wait for the
initial Evaluation Interval before polling.
Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin's avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
parent 261ab6bc
......@@ -1000,13 +1000,20 @@ static bool wait_for_rc6(int fd)
struct timespec tv = {};
uint64_t start, now;
start = pmu_read_single(fd);
/* First wait for roughly an RC6 Evaluation Interval */
usleep(160 * 1000);
/* Then poll for RC6 to start ticking */
now = pmu_read_single(fd);
do {
usleep(50);
start = now;
usleep(5000);
now = pmu_read_single(fd);
} while (start == now && !igt_seconds_elapsed(&tv));
if (now - start > 1e6)
return true;
} while (!igt_seconds_elapsed(&tv));
return start != now;
return false;
}
static void
......
......@@ -170,13 +170,20 @@ static bool wait_for_rc6(void)
struct timespec tv = {};
unsigned long start, now;
start = read_rc6_residency("rc6");
/* First wait for roughly an RC6 Evaluation Interval */
usleep(160 * 1000);
/* Then poll for RC6 to start ticking */
now = read_rc6_residency("rc6");
do {
usleep(50);
start = now;
usleep(5000);
now = read_rc6_residency("rc6");
} while (now == start && !igt_seconds_elapsed(&tv));
if (now - start > 1)
return true;
} while (!igt_seconds_elapsed(&tv));
return now != start;
return false;
}
igt_main
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment