powertop: merge some patches for bugfixes from Fedora.
This commit is contained in:
parent
c6919edaa9
commit
a1cda96b29
|
@ -0,0 +1,34 @@
|
|||
--- src/parameters/persistent.cpp.orig 2012-05-04 18:03:54.000000000 +0200
|
||||
+++ src/parameters/persistent.cpp 2012-05-16 21:29:24.785390730 +0200
|
||||
@@ -129,9 +129,6 @@ void save_parameters(const char *filenam
|
||||
|
||||
// printf("result size is %i, #parameters is %i \n", (int)past_results.size(), (int)all_parameters.parameters.size());
|
||||
|
||||
- if (!global_power_valid())
|
||||
- return;
|
||||
-
|
||||
pathname = get_param_directory(filename);
|
||||
|
||||
file.open(pathname, ios::out);
|
||||
@@ -140,12 +137,15 @@ void save_parameters(const char *filenam
|
||||
return;
|
||||
}
|
||||
|
||||
- map<string, int>::iterator it;
|
||||
-
|
||||
- for (it = param_index.begin(); it != param_index.end(); it++) {
|
||||
- int index;
|
||||
- index = it->second;
|
||||
- file << it->first << "\t" << setprecision(9) << all_parameters.parameters[index] << "\n";
|
||||
+ if (global_power_valid())
|
||||
+ {
|
||||
+ map<string, int>::iterator it;
|
||||
+
|
||||
+ for (it = param_index.begin(); it != param_index.end(); it++) {
|
||||
+ int index;
|
||||
+ index = it->second;
|
||||
+ file << it->first << "\t" << setprecision(9) << all_parameters.parameters[index] << "\n";
|
||||
+ }
|
||||
}
|
||||
file.close();
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
From bd72b4433fec358801afebf3f02ab899b1745c5f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
|
||||
Date: Wed, 28 Nov 2012 16:31:38 +0100
|
||||
Subject: [PATCH] report: fixed crash when writing report to RO filesystem
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
|
||||
---
|
||||
src/report/report.cpp | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/report/report.cpp b/src/report/report.cpp
|
||||
index 51bc6a7..c018bb1 100644
|
||||
--- src/report/report.cpp
|
||||
+++ src/report/report.cpp
|
||||
@@ -183,13 +183,16 @@ void init_report_output(char *filename_str, int iterations)
|
||||
|
||||
void finish_report_output(void)
|
||||
{
|
||||
- fprintf(stderr, _("PowerTOP outputing using base filename %s\n"), reportout.filename);
|
||||
if (reporttype == REPORT_OFF)
|
||||
return;
|
||||
|
||||
report.finish_report();
|
||||
- fputs(report.get_result(), reportout.report_file);
|
||||
- fdatasync(fileno(reportout.report_file));
|
||||
- fclose(reportout.report_file);
|
||||
+ if (reportout.report_file)
|
||||
+ {
|
||||
+ fprintf(stderr, _("PowerTOP outputing using base filename %s\n"), reportout.filename);
|
||||
+ fputs(report.get_result(), reportout.report_file);
|
||||
+ fdatasync(fileno(reportout.report_file));
|
||||
+ fclose(reportout.report_file);
|
||||
+ }
|
||||
report.clear_result();
|
||||
}
|
||||
--
|
||||
1.7.11.7
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
diff --git a/src/cpu/intel_cpus.h b/src/cpu/intel_cpus.h
|
||||
index 1949af1..752e8d0 100644
|
||||
--- src/cpu/intel_cpus.h
|
||||
+++ src/cpu/intel_cpus.h
|
||||
@@ -158,5 +158,6 @@ public:
|
||||
virtual char * fill_cstate_line(int line_nr, char *buffer, const char *separator);
|
||||
virtual int has_pstate_level(int level) { return 0; };
|
||||
virtual int has_pstates(void) { return 0; };
|
||||
+ virtual void wiggle(void) { };
|
||||
|
||||
};
|
|
@ -0,0 +1,149 @@
|
|||
From 63b20549280e606e5e73d5c9fe701c79a5abc6cf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
|
||||
Date: Wed, 12 Dec 2012 16:19:56 +0100
|
||||
Subject: [PATCH] Reduced number of useless 'open' syscalls
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
There are called many useless 'open' syscalls that always fail, like:
|
||||
open("/sys/devices/system/cpu/uevent/cpufreq/scaling_governor", O_RDONLY) = -1 ENOTDIR (Not a directory)
|
||||
This patch filters them to 'likely' patterns, like e.g.:
|
||||
/sys/devices/system/cpu/cpuX/cpufreq/scaling_governor, where X is string
|
||||
starting with digit. For match cases it will add only small overhead.
|
||||
|
||||
Originally reported as:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=886185
|
||||
|
||||
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
|
||||
---
|
||||
src/devices/alsa.cpp | 2 +-
|
||||
src/devices/backlight.cpp | 2 ++
|
||||
src/devlist.cpp | 3 ++-
|
||||
src/tuning/cpufreq.cpp | 11 ++++++-----
|
||||
src/tuning/tuningsysfs.cpp | 5 +----
|
||||
5 files changed, 12 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/devices/alsa.cpp b/src/devices/alsa.cpp
|
||||
index 4f5d3f9..33a52f5 100644
|
||||
--- src/devices/alsa.cpp
|
||||
+++ src/devices/alsa.cpp
|
||||
@@ -167,7 +167,7 @@ void create_all_alsa(void)
|
||||
entry = readdir(dir);
|
||||
if (!entry)
|
||||
break;
|
||||
- if (entry->d_name[0] == '.')
|
||||
+ if (strncmp(entry->d_name, "hwC", 3) != 0)
|
||||
continue;
|
||||
sprintf(filename, "/sys/class/sound/card0/%s/power_on_acct", entry->d_name);
|
||||
|
||||
diff --git a/src/devices/backlight.cpp b/src/devices/backlight.cpp
|
||||
index b8c9147..03aa5bc 100644
|
||||
--- src/devices/backlight.cpp
|
||||
+++ src/devices/backlight.cpp
|
||||
@@ -90,6 +90,8 @@ static int dpms_screen_on(void)
|
||||
if (!entry)
|
||||
break;
|
||||
|
||||
+ if (strncmp(entry->d_name, "card", 4) != 0)
|
||||
+ continue;
|
||||
sprintf(filename, "/sys/class/drm/card0/%s/enabled", entry->d_name);
|
||||
file.open(filename, ios::in);
|
||||
if (!file)
|
||||
diff --git a/src/devlist.cpp b/src/devlist.cpp
|
||||
index de5abff..633a568 100644
|
||||
--- src/devlist.cpp
|
||||
+++ src/devlist.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
+#include <ctype.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -117,7 +118,7 @@ void collect_open_devices(void)
|
||||
entry2 = readdir(dir2);
|
||||
if (!entry2)
|
||||
break;
|
||||
- if (entry2->d_name[0] == '.')
|
||||
+ if (!isdigit(entry2->d_name[0]))
|
||||
continue;
|
||||
sprintf(filename, "/proc/%s/fd/%s", entry->d_name, entry2->d_name);
|
||||
memset(link, 0, 4096);
|
||||
diff --git a/src/tuning/cpufreq.cpp b/src/tuning/cpufreq.cpp
|
||||
index df245ad..e870559 100644
|
||||
--- src/tuning/cpufreq.cpp
|
||||
+++ src/tuning/cpufreq.cpp
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <sys/stat.h>
|
||||
+#include <ctype.h>
|
||||
|
||||
#include "../lib.h"
|
||||
#include "cpufreq.h"
|
||||
@@ -72,7 +73,7 @@ int cpufreq_tunable::good_bad(void)
|
||||
return ret;
|
||||
|
||||
while ((dirent = readdir(dir))) {
|
||||
- if (dirent->d_name[0]=='.')
|
||||
+ if (strncmp(dirent->d_name, "cpu", 3) != 0 || !isdigit(dirent->d_name[3]))
|
||||
continue;
|
||||
sprintf(filename, "/sys/devices/system/cpu/%s/cpufreq/scaling_governor", dirent->d_name);
|
||||
file = fopen(filename, "r");
|
||||
@@ -123,7 +124,7 @@ void cpufreq_tunable::toggle(void)
|
||||
return;
|
||||
|
||||
while ((dirent = readdir(dir))) {
|
||||
- if (dirent->d_name[0]=='.')
|
||||
+ if (strncmp(dirent->d_name, "cpu", 3) != 0 || !isdigit(dirent->d_name[3]))
|
||||
continue;
|
||||
sprintf(filename, "/sys/devices/system/cpu/%s/cpufreq/scaling_governor", dirent->d_name);
|
||||
file = fopen(filename, "w");
|
||||
@@ -141,7 +142,7 @@ void cpufreq_tunable::toggle(void)
|
||||
return;
|
||||
|
||||
while ((dirent = readdir(dir))) {
|
||||
- if (dirent->d_name[0]=='.')
|
||||
+ if (strncmp(dirent->d_name, "cpu", 3) != 0 || !isdigit(dirent->d_name[3]))
|
||||
continue;
|
||||
sprintf(filename, "/sys/devices/system/cpu/%s/cpufreq/scaling_governor", dirent->d_name);
|
||||
file = fopen(filename, "w");
|
||||
@@ -171,7 +172,7 @@ const char *cpufreq_tunable::toggle_script(void) {
|
||||
return NULL;
|
||||
|
||||
while ((dirent = readdir(dir))) {
|
||||
- if (dirent->d_name[0]=='.')
|
||||
+ if (strncmp(dirent->d_name, "cpu", 3) != 0 || !isdigit(dirent->d_name[3]))
|
||||
continue;
|
||||
sprintf(filename, "/sys/devices/system/cpu/%s/cpufreq/scaling_governor", dirent->d_name);
|
||||
if (stat(filename, &statbuf) == -1)
|
||||
@@ -189,7 +190,7 @@ const char *cpufreq_tunable::toggle_script(void) {
|
||||
return NULL;
|
||||
|
||||
while ((dirent = readdir(dir))) {
|
||||
- if (dirent->d_name[0]=='.')
|
||||
+ if (strncmp(dirent->d_name, "cpu", 3) != 0 || !isdigit(dirent->d_name[3]))
|
||||
continue;
|
||||
sprintf(filename, "/sys/devices/system/cpu/%s/cpufreq/scaling_governor", dirent->d_name);
|
||||
if (stat(filename, &statbuf) == -1)
|
||||
diff --git a/src/tuning/tuningsysfs.cpp b/src/tuning/tuningsysfs.cpp
|
||||
index 33d3786..ec1ca6b 100644
|
||||
--- src/tuning/tuningsysfs.cpp
|
||||
+++ src/tuning/tuningsysfs.cpp
|
||||
@@ -131,10 +131,7 @@ void add_sata_tunables(void)
|
||||
if (!entry)
|
||||
break;
|
||||
|
||||
- if (strcmp(entry->d_name, ".") == 0)
|
||||
- continue;
|
||||
-
|
||||
- if (strcmp(entry->d_name, "..") == 0)
|
||||
+ if (entry->d_name[0] == '.')
|
||||
continue;
|
||||
|
||||
sprintf(filename, "/sys/class/scsi_host/%s/link_power_management_policy", entry->d_name);
|
||||
--
|
||||
1.7.11.7
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
From: Namhyung Kim <namhyung@gmail.com>
|
||||
To: powertop@lists.01.org
|
||||
Date: Sun, 18 Nov 2012 00:42:47 +0900
|
||||
Message-Id: <1353166967-24095-1-git-send-email-namhyung@gmail.com>
|
||||
Subject: [Powertop] [PATCH] Use PACKAGE_VERSION for POWERTOP_VERSION
|
||||
|
||||
It was missed to update POWERTOP_VERSION macro so that the
|
||||
new v2.2 release still shows v2.1 string on the header of
|
||||
ncurses window. Convert to use PACKAGE_VERSION macro which
|
||||
set by autotools to the AC_INIT version so that it cannot
|
||||
be missed anymore.
|
||||
|
||||
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
|
||||
---
|
||||
src/lib.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/lib.h b/src/lib.h
|
||||
index 8cf4632..209421a 100644
|
||||
--- src/lib.h
|
||||
+++ src/lib.h
|
||||
@@ -35,8 +35,8 @@
|
||||
|
||||
#define _(STRING) gettext(STRING)
|
||||
|
||||
-#define POWERTOP_VERSION "v2.1"
|
||||
-#define POWERTOP_SHORT_VERSION "2.1"
|
||||
+#define POWERTOP_VERSION "v"PACKAGE_VERSION
|
||||
+#define POWERTOP_SHORT_VERSION PACKAGE_VERSION
|
||||
|
||||
|
||||
extern int get_max_cpu(void);
|
||||
--
|
||||
1.7.9.2
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'powertop'
|
||||
pkgname=powertop
|
||||
version=2.2
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=gnu-configure
|
||||
makedepends="pkg-config ncurses-devel pciutils-devel libnl3-devel"
|
||||
short_desc="Linux tool to find out what is using power on computer"
|
||||
|
|
Loading…
Reference in New Issue