From mboxrd@z Thu Jan 1 00:00:00 1970 From: jeff.mcgee@intel.com Subject: [PATCH 4/4 v2] pm_rps: Require that cur reaches min at idle Date: Thu, 23 Jan 2014 15:54:50 -0600 Message-ID: <1390514090-17875-1-git-send-email-jeff.mcgee@intel.com> References: <20140123202455.GA29495@jeffdesk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 394ECFBFF5 for ; Thu, 23 Jan 2014 13:48:01 -0800 (PST) In-Reply-To: <20140123202455.GA29495@jeffdesk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org From: Jeff McGee The current frequency should reach the minimum frequency within a reasonable time during idle. v2: Not using forcewake for this particular subtest per Daniel's suggestion. Signed-off-by: Jeff McGee --- tests/pm_rps.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/tests/pm_rps.c b/tests/pm_rps.c index 7ae0438..24a1ad6 100644 --- a/tests/pm_rps.c +++ b/tests/pm_rps.c @@ -206,13 +206,27 @@ static void min_max_config(void (*check)(void)) check(); } +#define IDLE_WAIT_TIMESTEP_MSEC 100 +#define IDLE_WAIT_TIMEOUT_MSEC 3000 static void idle_check(void) { int freqs[NUMFREQ]; - - read_freqs(freqs); - dump(freqs); - checkit(freqs); + int wait = 0; + + /* Monitor frequencies until cur settles down to min, which should + * happen within the allotted time */ + do { + read_freqs(freqs); + dump(freqs); + checkit(freqs); + if (freqs[CUR] == freqs[MIN]) + break; + usleep(1000 * IDLE_WAIT_TIMESTEP_MSEC); + wait += IDLE_WAIT_TIMESTEP_MSEC; + } while (wait < IDLE_WAIT_TIMEOUT_MSEC); + + igt_assert(freqs[CUR] == freqs[MIN]); + log("Required %d msec to reach cur=min\n", wait); } static void pm_rps_exit_handler(int sig) -- 1.8.5.2