ACK: [PATCH 1/2] cpufreq: exit if parsing the cpufreq directory fails

Colin Ian King colin.king at canonical.com
Sat Jul 7 08:50:23 UTC 2018


On 06/07/18 15:41, Robert Elliott wrote:
> Merge the loops parsing cpufreq directory content and setting the
> governor to userspace so the function can exit if parsing fails.
> Include the CPU number in the error messages.
> 
> That can happen if the kernel runs into this:
> [   24.218674] cpufreq: cpufreq_online: ->get() failed
> and does not create /sys/devices/system/cpu/cpuNN/cpufreq.
> 
> Signed-off-by: Robert Elliott <elliott at hpe.com>
> ---
>  src/cpu/cpufreq/cpufreq.c | 21 ++++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/src/cpu/cpufreq/cpufreq.c b/src/cpu/cpufreq/cpufreq.c
> index d1e50cdf..a65b9d08 100644
> --- a/src/cpu/cpufreq/cpufreq.c
> +++ b/src/cpu/cpufreq/cpufreq.c
> @@ -834,18 +834,25 @@ static int cpufreq_init(fwts_framework *fw)
>  	num_cpus = scandir(FWTS_CPU_PATH, &dirs, is_cpu_dir, versionsort);
>  	cpus = calloc(num_cpus, sizeof(*cpus));
>  
> -	for (i = 0; i < num_cpus; i++)
> -		parse_cpu_info(fw, &cpus[i], dirs[i]);
> -
>  	/* all test require a userspace governor */
>  	for (i = 0; i < num_cpus; i++) {
> -		int rc = cpu_set_governor(fw, &cpus[i], "userspace");
> +		int rc;
>  
> +		rc = parse_cpu_info(fw, &cpus[i], dirs[i]);
>  		if (rc != FWTS_OK) {
> -			fwts_log_warning(fw, "Failed to initialize cpufreq "
> -					"to set CPU speed");
> +			fwts_log_warning(fw,
> +				"Failed to parse cpufreq for CPU %d", i);
>  			cpufreq_settable = false;
> -			break;
> +			return FWTS_ERROR;
> +		}
> +
> +		rc = cpu_set_governor(fw, &cpus[i], "userspace");
> +
> +		if (rc != FWTS_OK) {
> +			fwts_log_warning(fw,"Failed to initialize cpufreq "
> +					"to set CPU speed for CPU %d", i);
> +			cpufreq_settable = false;
> +			return FWTS_ERROR;
>  		}
>  	}
>  
> 
Acked-by: Colin Ian King <colin.king at canonical.com>



More information about the fwts-devel mailing list