mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [tip:perf/core] tools lib api cpu: Introduce cpu.[ch] to obtain cpu related information
@ 2015-09-15  7:03 tip-bot for Arnaldo Carvalho de Melo
  0 siblings, 0 replies; only message in thread
From: tip-bot for Arnaldo Carvalho de Melo @ 2015-09-15  7:03 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, kan.liang, acme, tglx, adrian.hunter, dsahern,
	wangnan0, bp, jolsa, namhyung, hpa, mingo, fweisbec, eranian

Commit-ID:  09f6acf2eacad3a0f9a4b9f77e0b021f0cb45780
Gitweb:     http://git.kernel.org/tip/09f6acf2eacad3a0f9a4b9f77e0b021f0cb45780
Author:     Arnaldo Carvalho de Melo <acme@redhat.com>
AuthorDate: Thu, 10 Sep 2015 12:20:14 -0300
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 14 Sep 2015 12:50:26 -0300

tools lib api cpu: Introduce cpu.[ch] to obtain cpu related information

E.g.:

 $ ./cpu__get_max_freq
 3200000

It does that, as Kan's patch does, by looking at these files:

  $ cat /sys/devices/system/cpu/online
  0-3
  $ ./sysfs__read_ull
  devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
  /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq=3200000
  $

I.e. find out the first online CPU, then read its cpufreq info.

But do it in tools/lib/api/, so that other tools/ living code can use
it, not just perf.

Based-on-a-patch-by: Kan Liang <kan.liang@intel.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-915v4cvxqplaub8qco66b9mv@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/lib/api/Build |  1 +
 tools/lib/api/cpu.c | 18 ++++++++++++++++++
 tools/lib/api/cpu.h |  6 ++++++
 3 files changed, 25 insertions(+)

diff --git a/tools/lib/api/Build b/tools/lib/api/Build
index 3653965..e8b8a23 100644
--- a/tools/lib/api/Build
+++ b/tools/lib/api/Build
@@ -1,2 +1,3 @@
 libapi-y += fd/
 libapi-y += fs/
+libapi-y += cpu.o
diff --git a/tools/lib/api/cpu.c b/tools/lib/api/cpu.c
new file mode 100644
index 0000000..8c64893
--- /dev/null
+++ b/tools/lib/api/cpu.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+
+#include "cpu.h"
+#include "fs/fs.h"
+
+int cpu__get_max_freq(unsigned long long *freq)
+{
+	char entry[PATH_MAX];
+	int cpu;
+
+	if (sysfs__read_int("devices/system/cpu/online", &cpu) < 0)
+		return -1;
+
+	snprintf(entry, sizeof(entry),
+		 "devices/system/cpu/cpu%d/cpufreq/cpuinfo_max_freq", cpu);
+
+	return sysfs__read_ull(entry, freq);
+}
diff --git a/tools/lib/api/cpu.h b/tools/lib/api/cpu.h
new file mode 100644
index 0000000..81e9d39
--- /dev/null
+++ b/tools/lib/api/cpu.h
@@ -0,0 +1,6 @@
+#ifndef __API_CPU__
+#define __API_CPU__
+
+int cpu__get_max_freq(unsigned long long *freq);
+
+#endif /* __API_CPU__ */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-09-15  7:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-15  7:03 [tip:perf/core] tools lib api cpu: Introduce cpu.[ch] to obtain cpu related information tip-bot for Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome