From: Lukasz Krakowiak Date: Wed, 3 Apr 2019 10:32:56 +0000 (+0200) Subject: test/power: add cases for turbo feature X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=aeaeaf5f2d62d49a01e843f258df6faf2a196d7e;p=dpdk.git test/power: add cases for turbo feature Add UT check_power_turbo. Signed-off-by: Lukasz Krakowiak Acked-by: David Hunt Tested-by: Marcin Hajkowski --- diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c index d099f2f471..d203810da9 100644 --- a/app/test/test_power_cpufreq.c +++ b/app/test/test_power_cpufreq.c @@ -366,6 +366,59 @@ check_power_freq_min(void) return 0; } +/* Check rte_power_turbo() */ +static int +check_power_turbo(void) +{ + int ret; + + if (rte_power_turbo_status(TEST_POWER_LCORE_ID) == 0) { + printf("Turbo not available on lcore %u, skipping test\n", + TEST_POWER_LCORE_ID); + return 0; + } + + /* test with an invalid lcore id */ + ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_INVALID); + if (ret >= 0) { + printf("Unexpectedly enable turbo successfully on lcore %u\n", + TEST_POWER_LCORE_INVALID); + return -1; + } + ret = rte_power_freq_enable_turbo(TEST_POWER_LCORE_ID); + if (ret < 0) { + printf("Fail to enable turbo on lcore %u\n", + TEST_POWER_LCORE_ID); + return -1; + } + + /* Check the current frequency */ + ret = check_cur_freq(TEST_POWER_LCORE_ID, 0); + if (ret < 0) + return -1; + + /* test with an invalid lcore id */ + ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_INVALID); + if (ret >= 0) { + printf("Unexpectedly disable turbo successfully on lcore %u\n", + TEST_POWER_LCORE_INVALID); + return -1; + } + ret = rte_power_freq_disable_turbo(TEST_POWER_LCORE_ID); + if (ret < 0) { + printf("Fail to disable turbo on lcore %u\n", + TEST_POWER_LCORE_ID); + return -1; + } + + /* Check the current frequency */ + ret = check_cur_freq(TEST_POWER_LCORE_ID, 1); + if (ret < 0) + return -1; + + return 0; +} + static int test_power_cpufreq(void) { @@ -427,6 +480,21 @@ test_power_cpufreq(void) "been initialised\n"); goto fail_all; } + if (rte_power_turbo_status == NULL) { + printf("rte_power_turbo_status should not be NULL, environment has not " + "been initialised\n"); + goto fail_all; + } + if (rte_power_freq_enable_turbo == NULL) { + printf("rte_power_freq_enable_turbo should not be NULL, environment has not " + "been initialised\n"); + goto fail_all; + } + if (rte_power_freq_disable_turbo == NULL) { + printf("rte_power_freq_disable_turbo should not be NULL, environment has not " + "been initialised\n"); + goto fail_all; + } ret = rte_power_exit(TEST_POWER_LCORE_ID); if (ret < 0) { @@ -502,6 +570,10 @@ test_power_cpufreq(void) if (ret < 0) goto fail_all; + ret = check_power_turbo(); + if (ret < 0) + goto fail_all; + ret = rte_power_exit(TEST_POWER_LCORE_ID); if (ret < 0) { printf("Cannot exit power management for lcore %u\n",