summaryrefslogtreecommitdiffstats
path: root/tools/perf/util
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@linux.intel.com>2009-09-24 15:40:13 +0200
committerIngo Molnar <mingo@elte.hu>2009-10-01 09:26:40 +0200
commit39a90a8ef17fe6fbf4b45e46e3c10d3b8b4a3dea (patch)
tree8aa8c5b0486d1d2cedace07bcb9e42189b4ccda5 /tools/perf/util
parentperf top: Add poll_idle to the skip list (diff)
downloadlinux-39a90a8ef17fe6fbf4b45e46e3c10d3b8b4a3dea.tar.xz
linux-39a90a8ef17fe6fbf4b45e46e3c10d3b8b4a3dea.zip
perf timechart: Add a power-only mode
For doing work on the Linux power management components, I need to make long (30+ seconds) traces. Currently, this then results in a HUGE svg file, with mostly process data that isn't interesting. This patch adds a --power-only mode to perf timechart that only outputs the CPU power section of the SVG; this significantly reduces the size of the SVG file, making even 30+ second traces viewable with inkscape. As a minor tweak for the same effect, the minimum text size is decreased; current inkscape cannot zoom in deep enough to show text this small, but it reduces inkscape compute time. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Cc: peterz@infradead.org LKML-Reference: <20090924154013.0675ab71@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/svghelper.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c
index a778fd0f4ae4..856655d8b0b8 100644
--- a/tools/perf/util/svghelper.c
+++ b/tools/perf/util/svghelper.c
@@ -28,7 +28,7 @@ static u64 turbo_frequency, max_freq;
int svg_page_width = 1000;
-#define MIN_TEXT_SIZE 0.001
+#define MIN_TEXT_SIZE 0.01
static u64 total_height;
static FILE *svgfile;
@@ -217,6 +217,18 @@ static char *cpu_model(void)
}
fclose(file);
}
+
+ /* CPU type */
+ file = fopen("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies", "r");
+ if (file) {
+ while (fgets(buf, 255, file)) {
+ unsigned int freq;
+ freq = strtoull(buf, NULL, 10);
+ if (freq > max_freq)
+ max_freq = freq;
+ }
+ fclose(file);
+ }
return cpu_m;
}