commit cpupower for openSUSE:Factory
Hello community, here is the log from the commit of package cpupower for openSUSE:Factory checked in at 2020-01-31 23:56:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cpupower (Old) and /work/SRC/openSUSE:Factory/.cpupower.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "cpupower" Fri Jan 31 23:56:42 2020 rev:45 rq:768747 version:5.5 Changes: -------- --- /work/SRC/openSUSE:Factory/cpupower/cpupower.changes 2019-12-03 12:42:20.738133368 +0100 +++ /work/SRC/openSUSE:Factory/.cpupower.new.26092/cpupower.changes 2020-01-31 23:57:48.783667829 +0100 @@ -1,0 +2,9 @@ +Thu Jan 30 13:25:05 UTC 2020 - trenn@suse.de + +- Add mainline patch with proper patch header and filename: +D libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch +A cpupower-Revert-library-ABI-changes-from-commit-ae2917093fb60bdc1ed3e.patch +- Fix manpage (bsc#1162142) +A Correction-to-manpage-of-cpupower.patch + +------------------------------------------------------------------- Old: ---- libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch New: ---- Correction-to-manpage-of-cpupower.patch cpupower-Revert-library-ABI-changes-from-commit-ae2917093fb60bdc1ed3e.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cpupower.spec ++++++ --- /var/tmp/diff_new_pack.RlwzOi/_old 2020-01-31 23:57:49.499668200 +0100 +++ /var/tmp/diff_new_pack.RlwzOi/_new 2020-01-31 23:57:49.499668200 +0100 @@ -1,7 +1,7 @@ # # spec file for package cpupower # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # Author: Thomas Renninger <trenn@suse.de> # # All modifications and additions to the file contributed by third parties @@ -42,7 +42,8 @@ Patch1: cpupower_rapl.patch Patch2: rapl_monitor.patch Patch3: cpupower_exclude_kernel_Makefile.patch -Patch4: libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch +Patch4: cpupower-Revert-library-ABI-changes-from-commit-ae2917093fb60bdc1ed3e.patch +Patch5: Correction-to-manpage-of-cpupower.patch #turbostat patches Patch22: turbostat_makefile_fix_asm_header.patch @@ -96,6 +97,7 @@ %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 cd ../turbostat-%{tsversion} %patch22 -p1 ++++++ Correction-to-manpage-of-cpupower.patch ++++++ From: Brahadambal Srinivasan <latha@linux.vnet.ibm.com> Subject: Correction to manpage of cpupower References: bsc#1162142 Patch-Mainline: Git-commit: 8c30fa7666ff08dad632411d1a9b9883940e53ef Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git Manpage of cpupower is listing wrong sub-commands in "See Also" section. The option for cpupower-idle(1) should actually be cpupower-idle-info(1) and cpupower-idle-set(1). This patch corrects this anomaly. Signed-off-by: Brahadambal Srinivasan <latha@linux.vnet.ibm.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: <trenn@suse.com> diff --git a/man/cpupower.1 b/man/cpupower.1 index baf741d06e82..a5e4523a219b 100644 --- a/man/cpupower.1 +++ b/man/cpupower.1 @@ -62,9 +62,9 @@ all cores Print the package name and version number. .SH "SEE ALSO" -cpupower-set(1), cpupower-info(1), cpupower-idle(1), -cpupower-frequency-set(1), cpupower-frequency-info(1), cpupower-monitor(1), -powertop(1) +cpupower-set(1), cpupower-info(1), cpupower-idle-info(1), +cpupower-idle-set(1), cpupower-frequency-set(1), cpupower-frequency-info(1), +cpupower-monitor(1), powertop(1) .PP .SH AUTHORS .nf ++++++ cpupower-Revert-library-ABI-changes-from-commit-ae2917093fb60bdc1ed3e.patch ++++++ From: Thomas Renninger <trenn@suse.de> Subject: cpupower: Revert library ABI changes from commit ae2917093fb60bdc1ed3e References: bsc#1162142 Patch-Mainline: Git-commit: 41ddb7e1f79693d904502ae9bea609837973eff8 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git Commit ae2917093fb6 ("tools/power/cpupower: Display boost frequency separately") modified the library function: struct cpufreq_available_frequencies *cpufreq_get_available_frequencies(unsigned int cpu) to struct cpufreq_frequencies *cpufreq_get_frequencies(const char *type, unsigned int cpu) This patch recovers the old API and implements the new functionality in a newly introduce method: struct cpufreq_boost_frequencies *cpufreq_get_available_frequencies(unsigned int cpu) This one should get merged into stable kernels back to 5.0 when the above had been introduced. Fixes: ae2917093fb6 ("tools/power/cpupower: Display boost frequency separately") Cc: stable@vger.kernel.org Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: <trenn@suse.com> diff --git a/lib/cpufreq.c b/lib/cpufreq.c index 2f55d4d23446..6e04304560ca 100644 --- a/lib/cpufreq.c +++ b/lib/cpufreq.c @@ -332,21 +332,74 @@ void cpufreq_put_available_governors(struct cpufreq_available_governors *any) } -struct cpufreq_frequencies -*cpufreq_get_frequencies(const char *type, unsigned int cpu) +struct cpufreq_available_frequencies +*cpufreq_get_available_frequencies(unsigned int cpu) { - struct cpufreq_frequencies *first = NULL; - struct cpufreq_frequencies *current = NULL; + struct cpufreq_available_frequencies *first = NULL; + struct cpufreq_available_frequencies *current = NULL; char one_value[SYSFS_PATH_MAX]; char linebuf[MAX_LINE_LEN]; - char fname[MAX_LINE_LEN]; unsigned int pos, i; unsigned int len; - snprintf(fname, MAX_LINE_LEN, "scaling_%s_frequencies", type); + len = sysfs_cpufreq_read_file(cpu, "scaling_available_frequencies", + linebuf, sizeof(linebuf)); + if (len == 0) + return NULL; - len = sysfs_cpufreq_read_file(cpu, fname, - linebuf, sizeof(linebuf)); + pos = 0; + for (i = 0; i < len; i++) { + if (linebuf[i] == ' ' || linebuf[i] == '\n') { + if (i - pos < 2) + continue; + if (i - pos >= SYSFS_PATH_MAX) + goto error_out; + if (current) { + current->next = malloc(sizeof(*current)); + if (!current->next) + goto error_out; + current = current->next; + } else { + first = malloc(sizeof(*first)); + if (!first) + goto error_out; + current = first; + } + current->first = first; + current->next = NULL; + + memcpy(one_value, linebuf + pos, i - pos); + one_value[i - pos] = '\0'; + if (sscanf(one_value, "%lu", ¤t->frequency) != 1) + goto error_out; + + pos = i + 1; + } + } + + return first; + + error_out: + while (first) { + current = first->next; + free(first); + first = current; + } + return NULL; +} + +struct cpufreq_available_frequencies +*cpufreq_get_boost_frequencies(unsigned int cpu) +{ + struct cpufreq_available_frequencies *first = NULL; + struct cpufreq_available_frequencies *current = NULL; + char one_value[SYSFS_PATH_MAX]; + char linebuf[MAX_LINE_LEN]; + unsigned int pos, i; + unsigned int len; + + len = sysfs_cpufreq_read_file(cpu, "scaling_boost_frequencies", + linebuf, sizeof(linebuf)); if (len == 0) return NULL; @@ -391,9 +444,9 @@ struct cpufreq_frequencies return NULL; } -void cpufreq_put_frequencies(struct cpufreq_frequencies *any) +void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *any) { - struct cpufreq_frequencies *tmp, *next; + struct cpufreq_available_frequencies *tmp, *next; if (!any) return; @@ -406,6 +459,11 @@ void cpufreq_put_frequencies(struct cpufreq_frequencies *any) } } +void cpufreq_put_boost_frequencies(struct cpufreq_available_frequencies *any) +{ + cpufreq_put_available_frequencies(any); +} + static struct cpufreq_affected_cpus *sysfs_get_cpu_list(unsigned int cpu, const char *file) { diff --git a/lib/cpufreq.h b/lib/cpufreq.h index a55f0d19215b..95f4fd9e2656 100644 --- a/lib/cpufreq.h +++ b/lib/cpufreq.h @@ -20,10 +20,10 @@ struct cpufreq_available_governors { struct cpufreq_available_governors *first; }; -struct cpufreq_frequencies { +struct cpufreq_available_frequencies { unsigned long frequency; - struct cpufreq_frequencies *next; - struct cpufreq_frequencies *first; + struct cpufreq_available_frequencies *next; + struct cpufreq_available_frequencies *first; }; @@ -124,11 +124,17 @@ void cpufreq_put_available_governors( * cpufreq_put_frequencies after use. */ -struct cpufreq_frequencies -*cpufreq_get_frequencies(const char *type, unsigned int cpu); +struct cpufreq_available_frequencies +*cpufreq_get_available_frequencies(unsigned int cpu); -void cpufreq_put_frequencies( - struct cpufreq_frequencies *first); +void cpufreq_put_available_frequencies( + struct cpufreq_available_frequencies *first); + +struct cpufreq_available_frequencies +*cpufreq_get_boost_frequencies(unsigned int cpu); + +void cpufreq_put_boost_frequencies( + struct cpufreq_available_frequencies *first); /* determine affected CPUs diff --git a/utils/cpufreq-info.c b/utils/cpufreq-info.c index e63cf55f81cf..6efc0f6b1b11 100644 --- a/utils/cpufreq-info.c +++ b/utils/cpufreq-info.c @@ -244,14 +244,14 @@ static int get_boost_mode_x86(unsigned int cpu) static int get_boost_mode(unsigned int cpu) { - struct cpufreq_frequencies *freqs; + struct cpufreq_available_frequencies *freqs; if (cpupower_cpu_info.vendor == X86_VENDOR_AMD || cpupower_cpu_info.vendor == X86_VENDOR_HYGON || cpupower_cpu_info.vendor == X86_VENDOR_INTEL) return get_boost_mode_x86(cpu); - freqs = cpufreq_get_frequencies("boost", cpu); + freqs = cpufreq_get_boost_frequencies(cpu); if (freqs) { printf(_(" boost frequency steps: ")); while (freqs->next) { @@ -261,7 +261,7 @@ static int get_boost_mode(unsigned int cpu) } print_speed(freqs->frequency); printf("\n"); - cpufreq_put_frequencies(freqs); + cpufreq_put_available_frequencies(freqs); } return 0; @@ -475,7 +475,7 @@ static int get_latency(unsigned int cpu, unsigned int human) static void debug_output_one(unsigned int cpu) { - struct cpufreq_frequencies *freqs; + struct cpufreq_available_frequencies *freqs; get_driver(cpu); get_related_cpus(cpu); @@ -483,7 +483,7 @@ static void debug_output_one(unsigned int cpu) get_latency(cpu, 1); get_hardware_limits(cpu, 1); - freqs = cpufreq_get_frequencies("available", cpu); + freqs = cpufreq_get_available_frequencies(cpu); if (freqs) { printf(_(" available frequency steps: ")); while (freqs->next) { @@ -493,7 +493,7 @@ static void debug_output_one(unsigned int cpu) } print_speed(freqs->frequency); printf("\n"); - cpufreq_put_frequencies(freqs); + cpufreq_put_available_frequencies(freqs); } get_available_governors(cpu);
participants (1)
-
root