forked from pool/cpupower
Accepting request 752877 from home:trenn:branches:hardware
- Update intel-speed-select to latest 5.5-rc1 kernel version latest mainline commit: commit b3abfd778bf1dbdd - Update cpupower to latest 5.5-rc1 kernel version latest mainline commit: commit 4611a4fb0cce3 Fixes aperf/mperf monitoring on latest AMD Rome CPUs (bsc#1152967) - Fix library API breakage (bsc#1154240) A libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch OBS-URL: https://build.opensuse.org/request/show/752877 OBS-URL: https://build.opensuse.org/package/show/hardware/cpupower?expand=0&rev=102
This commit is contained in:
parent
39b7d948a3
commit
65567d6f5a
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b135312bc54544acfdf3d1dfdb78137a86c273b4040a8538d08fc0026735153b
|
|
||||||
size 73390
|
|
3
cpupower-5.5.tar.bz2
Normal file
3
cpupower-5.5.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1b7678de31ac93bb8d86bfb552b020596138f56471994beb889215fbf9527442
|
||||||
|
size 74793
|
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 28 13:56:32 UTC 2019 - trenn@suse.de
|
||||||
|
|
||||||
|
- Update intel-speed-select to latest 5.5-rc1 kernel version
|
||||||
|
latest mainline commit:
|
||||||
|
commit b3abfd778bf1dbdd
|
||||||
|
- Update cpupower to latest 5.5-rc1 kernel version
|
||||||
|
latest mainline commit:
|
||||||
|
commit 4611a4fb0cce3
|
||||||
|
Fixes aperf/mperf monitoring on latest AMD Rome CPUs (bsc#1152967)
|
||||||
|
- Fix library API breakage (bsc#1154240)
|
||||||
|
A libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Oct 29 15:22:48 UTC 2019 - trenn@suse.de
|
Tue Oct 29 15:22:48 UTC 2019 - trenn@suse.de
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
Name: cpupower
|
Name: cpupower
|
||||||
# Use this as version when things are in mainline kernel
|
# Use this as version when things are in mainline kernel
|
||||||
%define version %(rpm -q --qf '%VERSION' kernel-source)
|
%define version %(rpm -q --qf '%VERSION' kernel-source)
|
||||||
Version: 5.1
|
Version: 5.5
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Tools to determine and set CPU Power related Settings
|
Summary: Tools to determine and set CPU Power related Settings
|
||||||
License: GPL-2.0-only
|
License: GPL-2.0-only
|
||||||
@ -42,6 +42,7 @@ Source5: Makefile.intel-speed-select
|
|||||||
Patch1: cpupower_rapl.patch
|
Patch1: cpupower_rapl.patch
|
||||||
Patch2: rapl_monitor.patch
|
Patch2: rapl_monitor.patch
|
||||||
Patch3: cpupower_exclude_kernel_Makefile.patch
|
Patch3: cpupower_exclude_kernel_Makefile.patch
|
||||||
|
Patch4: libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch
|
||||||
|
|
||||||
#turbostat patches
|
#turbostat patches
|
||||||
Patch22: turbostat_makefile_fix_asm_header.patch
|
Patch22: turbostat_makefile_fix_asm_header.patch
|
||||||
@ -94,6 +95,7 @@ powersave module.
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
|
||||||
cd ../turbostat-%{tsversion}
|
cd ../turbostat-%{tsversion}
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
Index: cpupower-4.15/Makefile
|
Index: cpupower-5.5/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cpupower-4.15.orig/Makefile 2018-01-11 16:49:23.619489210 +0100
|
--- cpupower-5.5.orig/Makefile 2019-11-28 14:28:51.545762057 +0100
|
||||||
+++ cpupower-4.15/Makefile 2018-01-11 16:50:32.263630773 +0100
|
+++ cpupower-5.5/Makefile 2019-11-28 14:29:55.089765481 +0100
|
||||||
@@ -30,8 +30,6 @@ OUTDIR := $(shell cd $(OUTPUT) && pwd)
|
@@ -94,14 +94,7 @@ RANLIB = $(CROSS)ranlib
|
||||||
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
|
HOSTCC = gcc
|
||||||
endif
|
MKDIR = mkdir
|
||||||
|
|
||||||
|
-# 64bit library detection
|
||||||
-include ../../scripts/Makefile.arch
|
-include ../../scripts/Makefile.arch
|
||||||
-
|
-
|
||||||
# --- CONFIGURATION BEGIN ---
|
-ifeq ($(IS_64_BIT), 1)
|
||||||
|
libdir ?= /usr/lib64
|
||||||
|
-else
|
||||||
|
-libdir ?= /usr/lib
|
||||||
|
-endif
|
||||||
|
|
||||||
# Set the following to `true' to make a unstripped, unoptimized
|
# Now we set up the build system
|
||||||
|
#
|
||||||
|
@ -25,11 +25,11 @@ more detailed info later. Like that other args can be added easily later as well
|
|||||||
|
|
||||||
Signed-off-by: Thomas Renninger <trenn@suse.com>
|
Signed-off-by: Thomas Renninger <trenn@suse.com>
|
||||||
|
|
||||||
Index: cpupower-5.1/Makefile
|
Index: cpupower-5.5/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cpupower-5.1.orig/Makefile 2019-05-06 02:42:58.000000000 +0200
|
--- cpupower-5.5.orig/Makefile 2019-11-28 02:45:48.000000000 +0100
|
||||||
+++ cpupower-5.1/Makefile 2019-07-18 12:14:08.787390727 +0200
|
+++ cpupower-5.5/Makefile 2019-11-28 14:27:56.753759105 +0100
|
||||||
@@ -143,7 +143,7 @@ UTIL_OBJS = utils/helpers/amd.o utils/h
|
@@ -133,7 +133,7 @@ UTIL_OBJS = utils/helpers/amd.o utils/h
|
||||||
utils/idle_monitor/mperf_monitor.o utils/idle_monitor/cpupower-monitor.o \
|
utils/idle_monitor/mperf_monitor.o utils/idle_monitor/cpupower-monitor.o \
|
||||||
utils/cpupower.o utils/cpufreq-info.o utils/cpufreq-set.o \
|
utils/cpupower.o utils/cpufreq-info.o utils/cpufreq-set.o \
|
||||||
utils/cpupower-set.o utils/cpupower-info.o utils/cpuidle-info.o \
|
utils/cpupower-set.o utils/cpupower-info.o utils/cpuidle-info.o \
|
||||||
@ -38,7 +38,7 @@ Index: cpupower-5.1/Makefile
|
|||||||
|
|
||||||
UTIL_SRC := $(UTIL_OBJS:.o=.c)
|
UTIL_SRC := $(UTIL_OBJS:.o=.c)
|
||||||
|
|
||||||
@@ -153,9 +153,9 @@ UTIL_HEADERS = utils/helpers/helpers.h u
|
@@ -143,9 +143,9 @@ UTIL_HEADERS = utils/helpers/helpers.h u
|
||||||
utils/helpers/bitmask.h \
|
utils/helpers/bitmask.h \
|
||||||
utils/idle_monitor/idle_monitors.h utils/idle_monitor/idle_monitors.def
|
utils/idle_monitor/idle_monitors.h utils/idle_monitor/idle_monitors.def
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ Index: cpupower-5.1/Makefile
|
|||||||
LIB_OBJS := $(addprefix $(OUTPUT),$(LIB_OBJS))
|
LIB_OBJS := $(addprefix $(OUTPUT),$(LIB_OBJS))
|
||||||
|
|
||||||
override CFLAGS += -pipe
|
override CFLAGS += -pipe
|
||||||
@@ -286,6 +286,7 @@ install-lib:
|
@@ -276,6 +276,7 @@ install-lib:
|
||||||
$(INSTALL) -d $(DESTDIR)${includedir}
|
$(INSTALL) -d $(DESTDIR)${includedir}
|
||||||
$(INSTALL_DATA) lib/cpufreq.h $(DESTDIR)${includedir}/cpufreq.h
|
$(INSTALL_DATA) lib/cpufreq.h $(DESTDIR)${includedir}/cpufreq.h
|
||||||
$(INSTALL_DATA) lib/cpuidle.h $(DESTDIR)${includedir}/cpuidle.h
|
$(INSTALL_DATA) lib/cpuidle.h $(DESTDIR)${includedir}/cpuidle.h
|
||||||
@ -59,7 +59,7 @@ Index: cpupower-5.1/Makefile
|
|||||||
|
|
||||||
install-tools:
|
install-tools:
|
||||||
$(INSTALL) -d $(DESTDIR)${bindir}
|
$(INSTALL) -d $(DESTDIR)${bindir}
|
||||||
@@ -302,6 +303,7 @@ install-man:
|
@@ -292,6 +293,7 @@ install-man:
|
||||||
$(INSTALL_DATA) -D man/cpupower-set.1 $(DESTDIR)${mandir}/man1/cpupower-set.1
|
$(INSTALL_DATA) -D man/cpupower-set.1 $(DESTDIR)${mandir}/man1/cpupower-set.1
|
||||||
$(INSTALL_DATA) -D man/cpupower-info.1 $(DESTDIR)${mandir}/man1/cpupower-info.1
|
$(INSTALL_DATA) -D man/cpupower-info.1 $(DESTDIR)${mandir}/man1/cpupower-info.1
|
||||||
$(INSTALL_DATA) -D man/cpupower-monitor.1 $(DESTDIR)${mandir}/man1/cpupower-monitor.1
|
$(INSTALL_DATA) -D man/cpupower-monitor.1 $(DESTDIR)${mandir}/man1/cpupower-monitor.1
|
||||||
@ -67,7 +67,7 @@ Index: cpupower-5.1/Makefile
|
|||||||
|
|
||||||
install-gmo:
|
install-gmo:
|
||||||
$(INSTALL) -d $(DESTDIR)${localedir}
|
$(INSTALL) -d $(DESTDIR)${localedir}
|
||||||
@@ -331,6 +333,7 @@ uninstall:
|
@@ -321,6 +323,7 @@ uninstall:
|
||||||
- rm -f $(DESTDIR)${mandir}/man1/cpupower-set.1
|
- rm -f $(DESTDIR)${mandir}/man1/cpupower-set.1
|
||||||
- rm -f $(DESTDIR)${mandir}/man1/cpupower-info.1
|
- rm -f $(DESTDIR)${mandir}/man1/cpupower-info.1
|
||||||
- rm -f $(DESTDIR)${mandir}/man1/cpupower-monitor.1
|
- rm -f $(DESTDIR)${mandir}/man1/cpupower-monitor.1
|
||||||
@ -75,10 +75,10 @@ Index: cpupower-5.1/Makefile
|
|||||||
- for HLANG in $(LANGUAGES); do \
|
- for HLANG in $(LANGUAGES); do \
|
||||||
rm -f $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \
|
rm -f $(DESTDIR)${localedir}/$$HLANG/LC_MESSAGES/cpupower.mo; \
|
||||||
done;
|
done;
|
||||||
Index: cpupower-5.1/lib/powercap.c
|
Index: cpupower-5.5/lib/powercap.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ cpupower-5.1/lib/powercap.c 2019-07-18 12:14:08.787390727 +0200
|
+++ cpupower-5.5/lib/powercap.c 2019-11-28 14:27:56.753759105 +0100
|
||||||
@@ -0,0 +1,290 @@
|
@@ -0,0 +1,290 @@
|
||||||
+/*
|
+/*
|
||||||
+ * (C) 2016 Thomas Renninger <trenn@suse.com>
|
+ * (C) 2016 Thomas Renninger <trenn@suse.com>
|
||||||
@ -370,10 +370,10 @@ Index: cpupower-5.1/lib/powercap.c
|
|||||||
+ }
|
+ }
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: cpupower-5.1/lib/powercap.h
|
Index: cpupower-5.5/lib/powercap.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ cpupower-5.1/lib/powercap.h 2019-07-18 12:14:08.787390727 +0200
|
+++ cpupower-5.5/lib/powercap.h 2019-11-28 14:27:56.753759105 +0100
|
||||||
@@ -0,0 +1,54 @@
|
@@ -0,0 +1,54 @@
|
||||||
+/*
|
+/*
|
||||||
+ * (C) 2016 Thomas Renninger <trenn@suse.com>
|
+ * (C) 2016 Thomas Renninger <trenn@suse.com>
|
||||||
@ -429,10 +429,10 @@ Index: cpupower-5.1/lib/powercap.h
|
|||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* __CPUPOWER_RAPL_H__ */
|
+#endif /* __CPUPOWER_RAPL_H__ */
|
||||||
Index: cpupower-5.1/utils/builtin.h
|
Index: cpupower-5.5/utils/builtin.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cpupower-5.1.orig/utils/builtin.h 2019-05-06 02:42:58.000000000 +0200
|
--- cpupower-5.5.orig/utils/builtin.h 2019-11-28 02:45:48.000000000 +0100
|
||||||
+++ cpupower-5.1/utils/builtin.h 2019-07-18 12:14:08.787390727 +0200
|
+++ cpupower-5.5/utils/builtin.h 2019-11-28 14:27:56.753759105 +0100
|
||||||
@@ -8,6 +8,8 @@ extern int cmd_freq_set(int argc, const
|
@@ -8,6 +8,8 @@ extern int cmd_freq_set(int argc, const
|
||||||
extern int cmd_freq_info(int argc, const char **argv);
|
extern int cmd_freq_info(int argc, const char **argv);
|
||||||
extern int cmd_idle_set(int argc, const char **argv);
|
extern int cmd_idle_set(int argc, const char **argv);
|
||||||
@ -442,11 +442,11 @@ Index: cpupower-5.1/utils/builtin.h
|
|||||||
extern int cmd_monitor(int argc, const char **argv);
|
extern int cmd_monitor(int argc, const char **argv);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Index: cpupower-5.1/utils/cpupower.c
|
Index: cpupower-5.5/utils/cpupower.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cpupower-5.1.orig/utils/cpupower.c 2019-05-06 02:42:58.000000000 +0200
|
--- cpupower-5.5.orig/utils/cpupower.c 2019-11-28 02:45:48.000000000 +0100
|
||||||
+++ cpupower-5.1/utils/cpupower.c 2019-07-18 12:14:08.787390727 +0200
|
+++ cpupower-5.5/utils/cpupower.c 2019-11-28 14:27:56.753759105 +0100
|
||||||
@@ -53,6 +53,7 @@ static struct cmd_struct commands[] = {
|
@@ -52,6 +52,7 @@ static struct cmd_struct commands[] = {
|
||||||
{ "frequency-set", cmd_freq_set, 1 },
|
{ "frequency-set", cmd_freq_set, 1 },
|
||||||
{ "idle-info", cmd_idle_info, 0 },
|
{ "idle-info", cmd_idle_info, 0 },
|
||||||
{ "idle-set", cmd_idle_set, 1 },
|
{ "idle-set", cmd_idle_set, 1 },
|
||||||
@ -454,10 +454,10 @@ Index: cpupower-5.1/utils/cpupower.c
|
|||||||
{ "set", cmd_set, 1 },
|
{ "set", cmd_set, 1 },
|
||||||
{ "info", cmd_info, 0 },
|
{ "info", cmd_info, 0 },
|
||||||
{ "monitor", cmd_monitor, 0 },
|
{ "monitor", cmd_monitor, 0 },
|
||||||
Index: cpupower-5.1/utils/powercap-info.c
|
Index: cpupower-5.5/utils/powercap-info.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ cpupower-5.1/utils/powercap-info.c 2019-07-18 12:14:08.787390727 +0200
|
+++ cpupower-5.5/utils/powercap-info.c 2019-11-28 14:27:56.753759105 +0100
|
||||||
@@ -0,0 +1,113 @@
|
@@ -0,0 +1,113 @@
|
||||||
+#include <unistd.h>
|
+#include <unistd.h>
|
||||||
+#include <stdio.h>
|
+#include <stdio.h>
|
||||||
@ -572,10 +572,10 @@ Index: cpupower-5.1/utils/powercap-info.c
|
|||||||
+ powercap_show();
|
+ powercap_show();
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: cpupower-5.1/man/cpupower-powercap-info.1
|
Index: cpupower-5.5/man/cpupower-powercap-info.1
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ cpupower-5.1/man/cpupower-powercap-info.1 2019-07-18 12:14:08.787390727 +0200
|
+++ cpupower-5.5/man/cpupower-powercap-info.1 2019-11-28 14:27:56.753759105 +0100
|
||||||
@@ -0,0 +1,25 @@
|
@@ -0,0 +1,25 @@
|
||||||
+.TH CPUPOWER\-POWERCAP\-INFO "1" "05/08/2016" "" "cpupower Manual"
|
+.TH CPUPOWER\-POWERCAP\-INFO "1" "05/08/2016" "" "cpupower Manual"
|
||||||
+.SH NAME
|
+.SH NAME
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2751834c3e67715c000853315c562b4d4d7c3b77e3aca60ac38d529f6c9e44f1
|
oid sha256:01f2f88a5cafb639d0720f25190e61f2361583da245b90460428dbc476c13df8
|
||||||
size 17036
|
size 17036
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: intel-speed-select-1.0/isst-config.c
|
Index: intel-speed-select-1.0/isst-config.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- intel-speed-select-1.0.orig/isst-config.c 2019-07-17 00:15:29.000000000 +0200
|
--- intel-speed-select-1.0.orig/isst-config.c 2019-11-28 02:45:48.000000000 +0100
|
||||||
+++ intel-speed-select-1.0/isst-config.c 2019-07-17 17:53:30.371832405 +0200
|
+++ intel-speed-select-1.0/isst-config.c 2019-11-28 14:31:29.745770581 +0100
|
||||||
@@ -1521,7 +1521,6 @@ static void usage(void)
|
@@ -1618,7 +1618,6 @@ static void usage(void)
|
||||||
static void print_version(void)
|
static void print_version(void)
|
||||||
{
|
{
|
||||||
fprintf(outf, "Version %s\n", version_str);
|
fprintf(outf, "Version %s\n", version_str);
|
||||||
|
228
libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch
Normal file
228
libcpupower_fix_api_cpufreq_get_frequencies_breakage.patch
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
commit 23ce8fc7ebcf63b986027d7fcd792fd521c43800
|
||||||
|
Author: Thomas Renninger <trenn@suse.com>
|
||||||
|
Date: Mon Dec 2 11:50:39 2019 +0100
|
||||||
|
|
||||||
|
Revert library ABI changes from commit ae2917093fb60bdc1ed3e
|
||||||
|
|
||||||
|
Commit ae2917093fb60bdc1ed3e 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)
|
||||||
|
|
||||||
|
diff --git a/tools/power/cpupower/lib/cpufreq.c b/tools/power/cpupower/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/tools/power/cpupower/lib/cpufreq.h b/tools/power/cpupower/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/tools/power/cpupower/utils/cpufreq-info.c b/tools/power/cpupower/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);
|
@ -3,11 +3,11 @@ cpupower: rapl monitor - shows the used power consumption in uj for each rapl do
|
|||||||
|
|
||||||
Signed-off-by: Thomas Renninger <trenn@suse.com>
|
Signed-off-by: Thomas Renninger <trenn@suse.com>
|
||||||
|
|
||||||
Index: cpupower-5.1/Makefile
|
Index: cpupower-5.5/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cpupower-5.1.orig/Makefile 2019-04-08 16:06:58.426460199 +0200
|
--- cpupower-5.5.orig/Makefile 2019-11-28 14:44:23.261812260 +0100
|
||||||
+++ cpupower-5.1/Makefile 2019-04-08 16:06:59.902460279 +0200
|
+++ cpupower-5.5/Makefile 2019-11-28 14:44:28.457812540 +0100
|
||||||
@@ -141,6 +141,7 @@ UTIL_OBJS = utils/helpers/amd.o utils/h
|
@@ -131,6 +131,7 @@ UTIL_OBJS = utils/helpers/amd.o utils/h
|
||||||
utils/idle_monitor/hsw_ext_idle.o \
|
utils/idle_monitor/hsw_ext_idle.o \
|
||||||
utils/idle_monitor/amd_fam14h_idle.o utils/idle_monitor/cpuidle_sysfs.o \
|
utils/idle_monitor/amd_fam14h_idle.o utils/idle_monitor/cpuidle_sysfs.o \
|
||||||
utils/idle_monitor/mperf_monitor.o utils/idle_monitor/cpupower-monitor.o \
|
utils/idle_monitor/mperf_monitor.o utils/idle_monitor/cpupower-monitor.o \
|
||||||
@ -15,11 +15,11 @@ Index: cpupower-5.1/Makefile
|
|||||||
utils/cpupower.o utils/cpufreq-info.o utils/cpufreq-set.o \
|
utils/cpupower.o utils/cpufreq-info.o utils/cpufreq-set.o \
|
||||||
utils/cpupower-set.o utils/cpupower-info.o utils/cpuidle-info.o \
|
utils/cpupower-set.o utils/cpupower-info.o utils/cpuidle-info.o \
|
||||||
utils/cpuidle-set.o utils/powercap-info.o
|
utils/cpuidle-set.o utils/powercap-info.o
|
||||||
Index: cpupower-5.1/utils/idle_monitor/cpupower-monitor.c
|
Index: cpupower-5.5/utils/idle_monitor/cpupower-monitor.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cpupower-5.1.orig/utils/idle_monitor/cpupower-monitor.c 2019-04-08 07:51:09.000000000 +0200
|
--- cpupower-5.5.orig/utils/idle_monitor/cpupower-monitor.c 2019-11-28 14:44:23.261812260 +0100
|
||||||
+++ cpupower-5.1/utils/idle_monitor/cpupower-monitor.c 2019-04-08 16:06:59.906460279 +0200
|
+++ cpupower-5.5/utils/idle_monitor/cpupower-monitor.c 2019-11-28 14:44:28.457812540 +0100
|
||||||
@@ -459,9 +459,10 @@ int cmd_monitor(int argc, char **argv)
|
@@ -457,9 +457,10 @@ int cmd_monitor(int argc, char **argv)
|
||||||
print_results(1, cpu);
|
print_results(1, cpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,10 +33,10 @@ Index: cpupower-5.1/utils/idle_monitor/cpupower-monitor.c
|
|||||||
cpu_topology_release(cpu_top);
|
cpu_topology_release(cpu_top);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Index: cpupower-5.1/utils/idle_monitor/idle_monitors.def
|
Index: cpupower-5.5/utils/idle_monitor/idle_monitors.def
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cpupower-5.1.orig/utils/idle_monitor/idle_monitors.def 2019-04-08 07:51:09.000000000 +0200
|
--- cpupower-5.5.orig/utils/idle_monitor/idle_monitors.def 2019-11-28 14:44:23.261812260 +0100
|
||||||
+++ cpupower-5.1/utils/idle_monitor/idle_monitors.def 2019-04-08 16:06:59.906460279 +0200
|
+++ cpupower-5.5/utils/idle_monitor/idle_monitors.def 2019-11-28 14:44:28.457812540 +0100
|
||||||
@@ -4,5 +4,6 @@ DEF(intel_nhm)
|
@@ -4,5 +4,6 @@ DEF(intel_nhm)
|
||||||
DEF(intel_snb)
|
DEF(intel_snb)
|
||||||
DEF(intel_hsw_ext)
|
DEF(intel_hsw_ext)
|
||||||
@ -44,10 +44,10 @@ Index: cpupower-5.1/utils/idle_monitor/idle_monitors.def
|
|||||||
+DEF(rapl)
|
+DEF(rapl)
|
||||||
#endif
|
#endif
|
||||||
DEF(cpuidle_sysfs)
|
DEF(cpuidle_sysfs)
|
||||||
Index: cpupower-5.1/utils/idle_monitor/rapl_monitor.c
|
Index: cpupower-5.5/utils/idle_monitor/rapl_monitor.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ cpupower-5.1/utils/idle_monitor/rapl_monitor.c 2019-04-08 16:06:59.906460279 +0200
|
+++ cpupower-5.5/utils/idle_monitor/rapl_monitor.c 2019-11-28 14:44:54.909813966 +0100
|
||||||
@@ -0,0 +1,141 @@
|
@@ -0,0 +1,141 @@
|
||||||
+/*
|
+/*
|
||||||
+ * (C) 2016 Thomas Renninger <trenn@suse.com>
|
+ * (C) 2016 Thomas Renninger <trenn@suse.com>
|
||||||
@ -185,7 +185,7 @@ Index: cpupower-5.1/utils/idle_monitor/rapl_monitor.c
|
|||||||
+ .start = rapl_start,
|
+ .start = rapl_start,
|
||||||
+ .stop = rapl_stop,
|
+ .stop = rapl_stop,
|
||||||
+ .do_register = rapl_register,
|
+ .do_register = rapl_register,
|
||||||
+ .needs_root = 0,
|
+ .flags.needs_root = 0,
|
||||||
+ .overflow_s = 60 * 60 * 24 * 100, /* To be implemented */
|
+ .overflow_s = 60 * 60 * 24 * 100, /* To be implemented */
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
|
Loading…
Reference in New Issue
Block a user