ACK: [PATCH 2/3] cpu: cpufreq: add more granularity to progress feedback

Keng-Yu Lin keng-yu.lin at canonical.com
Mon May 26 00:24:29 UTC 2014


On Fri, May 23, 2014 at 12:03 PM, Alex Hung <alex.hung at canonical.com> wrote:
> On 05/21/2014 07:55 PM, Colin King wrote:
>>
>> From: Colin Ian King <colin.king at canonical.com>
>>
>> The last parts of the cpufreq show little progress feedback which
>> can alarm some users because it looks like the test has frozen.
>> Add some more granularity to the progress feedback to fix this.
>>
>> Signed-off-by: Colin Ian King <colin.king at canonical.com>
>> ---
>>   src/cpu/cpufreq/cpufreq.c | 30 ++++++++++++++++++++----------
>>   1 file changed, 20 insertions(+), 10 deletions(-)
>>
>> diff --git a/src/cpu/cpufreq/cpufreq.c b/src/cpu/cpufreq/cpufreq.c
>> index dbc1b0b..4ec1f12 100644
>> --- a/src/cpu/cpufreq/cpufreq.c
>> +++ b/src/cpu/cpufreq/cpufreq.c
>> @@ -293,7 +293,7 @@ static void do_cpu(fwts_framework *fw, const int cpu)
>>                 return;
>>         }
>>         if (total_tests == 1)
>> -               total_tests = ((2 + speedcount) * num_cpus) + 2;
>> +               total_tests = ((2 + speedcount) * num_cpus) + 4;
>>
>>         for (i = 0; i < speedcount; i++) {
>>                 set_HZ(fw, cpu, freqs[i].Hz);
>> @@ -469,6 +469,7 @@ static void do_sw_all_test(fwts_framework *fw)
>>         uint64_t highperf, lowperf;
>>         int first_cpu_index = -1;
>>         int cpu;
>> +       int ret;
>>
>>         if ((dir = opendir(FWTS_CPU_PATH)) == NULL) {
>>                 fwts_log_error(fw, "FATAL: cpufreq: sysfs not mounted.");
>> @@ -487,7 +488,10 @@ static void do_sw_all_test(fwts_framework *fw)
>>         closedir(dir);
>>
>>         /* All CPUs at the lowest frequency */
>> -       if (get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MIN, &lowperf) != FWTS_OK) {
>> +       ret = get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MIN, &lowperf);
>> +       performed_tests++;
>> +       fwts_progress(fw, 100 * performed_tests/total_tests);
>> +       if (ret != FWTS_OK) {
>>                 fwts_failed(fw, LOG_LEVEL_MEDIUM, "CPUFreqSW_ALLGetPerf",
>>                         "Failed to get CPU performance.");
>>                 return;
>> @@ -495,7 +499,10 @@ static void do_sw_all_test(fwts_framework *fw)
>>         lowperf = (lowperf * 100) / top_speed;
>>
>>         highest_speed(fw, first_cpu_index);
>> -       if (get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MAX, &highperf) != FWTS_OK) {
>> +       ret = get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MAX, &highperf);
>> +       performed_tests++;
>> +       fwts_progress(fw, 100 * performed_tests/total_tests);
>> +       if (ret != FWTS_OK) {
>>                 fwts_failed(fw, LOG_LEVEL_MEDIUM, "CPUFreqSW_ALLGetPerf",
>>                         "Failed to get CPU performance.");
>>                 return;
>> @@ -525,6 +532,7 @@ static void do_sw_any_test(fwts_framework *fw)
>>         uint64_t highperf, lowperf;
>>         int first_cpu_index = -1;
>>         int cpu;
>> +       int ret;
>>
>>         if ((dir = opendir(FWTS_CPU_PATH)) == NULL) {
>>                 fwts_log_error(fw, "FATAL: cpufreq: sysfs not mounted.");
>> @@ -543,7 +551,10 @@ static void do_sw_any_test(fwts_framework *fw)
>>         rewinddir(dir);
>>
>>         /* All CPUs at the lowest frequency */
>> -       if (get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MIN, &lowperf) != FWTS_OK) {
>> +       ret = get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MIN, &lowperf);
>> +       performed_tests++;
>> +       fwts_progress(fw, 100 * performed_tests/total_tests);
>> +       if (ret != FWTS_OK) {
>>                 fwts_failed(fw, LOG_LEVEL_MEDIUM, "CPUFreqSW_ANYGetPerf",
>>                         "Failed to get CPU performance.");
>>                 closedir(dir);
>> @@ -563,7 +574,10 @@ static void do_sw_any_test(fwts_framework *fw)
>>         }
>>         closedir(dir);
>>
>> -       if (get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MAX, &highperf) != FWTS_OK) {
>> +       ret = get_performance_repeat(fw, first_cpu_index, 5,
>> GET_PERFORMANCE_MAX, &highperf);
>> +       performed_tests++;
>> +       fwts_progress(fw, 100 * performed_tests/total_tests);
>> +       if (ret != FWTS_OK) {
>>                 fwts_failed(fw, LOG_LEVEL_MEDIUM, "CPUFreqSW_ANYGetPerf",
>>                         "Failed to get CPU performance.");
>>                 return;
>> @@ -734,13 +748,9 @@ static int cpufreq_test1(fwts_framework *fw)
>>          */
>>         if (num_cpus > 1 && number_of_speeds > 1) {
>>                 do_sw_all_test(fw);
>> -               performed_tests++;
>> -               fwts_progress(fw, 100 * performed_tests/total_tests);
>>                 do_sw_any_test(fw);
>> -               performed_tests++;
>> -               fwts_progress(fw, 100 * performed_tests/total_tests);
>>         } else if (number_of_speeds > 1) {
>> -               performed_tests += 2;
>> +               performed_tests += 4;
>>                 fwts_progress(fw, 100 * performed_tests/total_tests);
>>         }
>>   #endif
>>
>
> Acked-by: Alex Hung <alex.hung at canonical.com>
>
Acked-by: Keng-Yu Lin <kengyu at canonical.com>



More information about the fwts-devel mailing list