X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_power_cpufreq.c;h=d203810da9e15353574a32eabeaceba0cea7410c;hb=b340b41de0c074d6e3434af5c929484aa1cc68ab;hp=d099f2f47106e58b89c8789ed69061d9a8267af5;hpb=c7ec1f26fd6e6e644121d221df8d55288776bbc0;p=dpdk.git 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",