From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4A633A0A02 for ; Mon, 17 May 2021 18:15:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4078241101; Mon, 17 May 2021 18:15:39 +0200 (CEST) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by mails.dpdk.org (Postfix) with ESMTP id 2776A4014E for ; Mon, 17 May 2021 18:15:38 +0200 (CEST) Received: from 2.general.paelzer.uk.vpn ([10.172.196.173] helo=Keschdeichel.fritz.box) by youngberry.canonical.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lifu4-0008Ec-LR; Mon, 17 May 2021 16:15:36 +0000 From: Christian Ehrhardt To: Richael Zhuang Cc: David Hunt , dpdk stable Date: Mon, 17 May 2021 18:09:16 +0200 Message-Id: <20210517161039.3132619-127-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210517161039.3132619-1-christian.ehrhardt@canonical.com> References: <20210517161039.3132619-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'test/power: add delay before checking CPU frequency' has been queued to stable release 19.11.9 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/19/21. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/cpaelzer/dpdk-stable-queue This queued commit can be viewed at: https://github.com/cpaelzer/dpdk-stable-queue/commit/002beb990e5dcfeca7ae73a5ad5505e19f729f7e our Thanks. Christian Ehrhardt --- >From 002beb990e5dcfeca7ae73a5ad5505e19f729f7e Mon Sep 17 00:00:00 2001 From: Richael Zhuang Date: Thu, 15 Apr 2021 13:59:29 +0800 Subject: [PATCH] test/power: add delay before checking CPU frequency [ upstream commit 00456850be40d8b663d1066763ddedffe4346585 ] For some platforms the newly-set frequency may not be effective immediately. If we didn't get the right value from cpuinfo_cur_freq immediately, add 10ms delay each time before rechecking until timeout. >From our test, for some arm platforms, it requires up to 700ms when going from a minimum to a maximum frequency. And it's not the driver/software issue. Fixes: ed7c51a6a680 ("app/test: vm power management") Signed-off-by: Richael Zhuang Reviewed-by: David Hunt --- app/test/test_power_cpufreq.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c index d203810da9..188d789e0a 100644 --- a/app/test/test_power_cpufreq.c +++ b/app/test/test_power_cpufreq.c @@ -8,6 +8,7 @@ #include #include #include +#include #include "test.h" @@ -44,11 +45,13 @@ static int check_cur_freq(unsigned lcore_id, uint32_t idx) { #define TEST_POWER_CONVERT_TO_DECIMAL 10 +#define MAX_LOOP 100 FILE *f; char fullpath[PATH_MAX]; char buf[BUFSIZ]; uint32_t cur_freq; int ret = -1; + int i; if (snprintf(fullpath, sizeof(fullpath), TEST_POWER_SYSFILE_CUR_FREQ, lcore_id) < 0) { @@ -58,13 +61,27 @@ check_cur_freq(unsigned lcore_id, uint32_t idx) if (f == NULL) { return 0; } - if (fgets(buf, sizeof(buf), f) == NULL) { - goto fail_get_cur_freq; + for (i = 0; i < MAX_LOOP; i++) { + fflush(f); + if (fgets(buf, sizeof(buf), f) == NULL) + goto fail_all; + + cur_freq = strtoul(buf, NULL, TEST_POWER_CONVERT_TO_DECIMAL); + ret = (freqs[idx] == cur_freq ? 0 : -1); + + if (ret == 0) + break; + + if (fseek(f, 0, SEEK_SET) < 0) { + printf("Fail to set file position indicator to 0\n"); + goto fail_all; + } + + /* wait for the value to be updated */ + rte_delay_ms(10); } - cur_freq = strtoul(buf, NULL, TEST_POWER_CONVERT_TO_DECIMAL); - ret = (freqs[idx] == cur_freq ? 0 : -1); -fail_get_cur_freq: +fail_all: fclose(f); return ret; -- 2.31.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-05-17 17:40:34.386989302 +0200 +++ 0127-test-power-add-delay-before-checking-CPU-frequency.patch 2021-05-17 17:40:29.355810924 +0200 @@ -1 +1 @@ -From 00456850be40d8b663d1066763ddedffe4346585 Mon Sep 17 00:00:00 2001 +From 002beb990e5dcfeca7ae73a5ad5505e19f729f7e Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 00456850be40d8b663d1066763ddedffe4346585 ] + @@ -16 +17,0 @@ -Cc: stable@dpdk.org @@ -25 +26 @@ -index 731c6b4dc8..d47b3e0a1a 100644 +index d203810da9..188d789e0a 100644