Hello community,

here is the log from the commit of package cpupower for openSUSE:Leap:15.2 
checked in at 2020-02-04 17:59:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/cpupower (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.cpupower.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cpupower"

Tue Feb  4 17:59:43 2020 rev:22 rq:769588 version:5.5

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/cpupower/cpupower.changes      2020-01-15 
14:50:59.957436514 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.cpupower.new.26092/cpupower.changes   
2020-02-04 17:59:51.344946197 +0100
@@ -1,0 +2,9 @@
+Thu Jan 30 13:25:05 UTC 2020 - [email protected]
+
+- 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.BHyKxP/_old  2020-02-04 17:59:52.128946669 +0100
+++ /var/tmp/diff_new_pack.BHyKxP/_new  2020-02-04 17:59:52.132946672 +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 <[email protected]>
 #
 # 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 <[email protected]>
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 <[email protected]>
Signed-off-by: Shuah Khan <[email protected]>


Signed-off-by:  <[email protected]>
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 <[email protected]>
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: [email protected]
Signed-off-by: Thomas Renninger <[email protected]>
Signed-off-by: Shuah Khan <[email protected]>


Signed-off-by:  <[email protected]>
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", &current->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);

Reply via email to