diff options
author | Jeff McGee <jeff.mcgee@intel.com> | 2014-01-28 18:25:06 -0600 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-02-06 07:46:42 +0100 |
commit | 2cbb0fbf5f3dc839a11d23a970948cb91718594e (patch) | |
tree | 66c654d1bfe20fda6bc59d705a019b8e1763b3c1 /tests/pm_rps.c | |
parent | ceb14b190594b767667d34c284e4afdb1932f973 (diff) |
pm_rps: New subtest min-max-config-loaded
Like subtest basic-api, but additionally requires that current
frequency is increasing to the configured maximum within reasonable
time since we are loaded.
Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/pm_rps.c')
-rw-r--r-- | tests/pm_rps.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/pm_rps.c b/tests/pm_rps.c index 555bb7c4..709e3413 100644 --- a/tests/pm_rps.c +++ b/tests/pm_rps.c @@ -371,6 +371,29 @@ static void idle_check(void) log("Required %d msec to reach cur=min\n", wait); } +#define LOADED_WAIT_TIMESTEP_MSEC 100 +#define LOADED_WAIT_TIMEOUT_MSEC 3000 +static void loaded_check(void) +{ + int freqs[NUMFREQ]; + int wait = 0; + + /* Monitor frequencies until cur increases to max, which should + * happen within the allotted time */ + do { + read_freqs(freqs); + dump(freqs); + checkit(freqs); + if (freqs[CUR] == freqs[MAX]) + break; + usleep(1000 * LOADED_WAIT_TIMESTEP_MSEC); + wait += LOADED_WAIT_TIMESTEP_MSEC; + } while (wait < LOADED_WAIT_TIMEOUT_MSEC); + + igt_assert(freqs[CUR] == freqs[MAX]); + log("Required %d msec to reach cur=max\n", wait); +} + static void pm_rps_exit_handler(int sig) { if (origfreqs[MIN] > readval(stuff[MAX].filp)) { @@ -456,5 +479,11 @@ int main(int argc, char **argv) igt_subtest("min-max-config-idle") min_max_config(idle_check); + igt_subtest("min-max-config-loaded") { + load_helper_run(); + min_max_config(loaded_check); + load_helper_stop(); + } + igt_exit(); } |