* [PATCH 1/3] perf: Do not export power_frequency, but power_start event [not found] <1291306833-8072-1-git-send-email-trenn@suse.de> @ 2010-12-02 16:20 ` Thomas Renninger [not found] ` <1291306833-8072-3-git-send-email-trenn@suse.de> 0 siblings, 1 reply; 9+ messages in thread From: Thomas Renninger @ 2010-12-02 16:20 UTC (permalink / raw) Cc: Thomas Renninger, Jean Pihet, Arjan van de Ven, linux-kernel, rjw, Ingo Molnar power_frequency moved to drivers/cpufreq/cpufreq.c which has to be compiled in, no need to export it. intel_idle can a be module though... Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: Jean Pihet <jean.pihet@newoldbits.com> CC: Jean Pihet <j-pihet@ti.com> CC: Arjan van de Ven <arjan@linux.intel.com> CC: linux-kernel@vger.kernel.org Cc: rjw@sisk.pl LKML-Reference: <1290072314-31155-2-git-send-email-trenn@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- drivers/idle/intel_idle.c | 2 -- kernel/trace/power-traces.c | 2 +- 2 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 41665d2..3c95325 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) kt_before = ktime_get_real(); stop_critical_timings(); -#ifndef MODULE trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); -#endif if (!need_resched()) { __monitor((void *)¤t_thread_info()->flags, 0, 0); diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c index a22582a..0e0497d 100644 --- a/kernel/trace/power-traces.c +++ b/kernel/trace/power-traces.c @@ -13,5 +13,5 @@ #define CREATE_TRACE_POINTS #include <trace/events/power.h> -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); -- 1.6.0.2 ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <1291306833-8072-3-git-send-email-trenn@suse.de>]
* [PATCH 3/3] PERF(userspace): Adjust perf timechart to the new power events [not found] ` <1291306833-8072-3-git-send-email-trenn@suse.de> @ 2010-12-02 16:20 ` Thomas Renninger 0 siblings, 0 replies; 9+ messages in thread From: Thomas Renninger @ 2010-12-02 16:20 UTC (permalink / raw) Cc: Thomas Renninger, Jean Pihet, Arjan van de Ven, Ingo Molnar, linux-kernel Recent changes: - Adjust state/cpuid to u32 as done in the kernel The transition was rather smooth, only part I had to fiddle some time was the check whether a tracepoint/event is supported by the running kernel. builtin-timechart must only pass -e power:xy events which are supported by the running kernel. For this I added the tiny helper function: int is_valid_tracepoint(const char *event_string) to parse-events.[hc] which could be more generic as an interface and support hardware/software/... events, not only tracepoints, but someone else could extend that if needed... Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: Arjan van de Ven <arjan@linux.intel.com> Acked-by: Jean Pihet <j-pihet@ti.com> CC: Jean Pihet <j-pihet@ti.com> CC: Arjan van de Ven <arjan@linux.intel.com> CC: Ingo Molnar <mingo@elte.hu> CC: linux-kernel@vger.kernel.org --- tools/perf/builtin-timechart.c | 92 +++++++++++++++++++++++++++++++++------- tools/perf/util/parse-events.c | 41 ++++++++++++++++++ tools/perf/util/parse-events.h | 1 + 3 files changed, 118 insertions(+), 16 deletions(-) diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c index 9bcc38f..148dc5e 100644 --- a/tools/perf/builtin-timechart.c +++ b/tools/perf/builtin-timechart.c @@ -32,6 +32,10 @@ #include "util/session.h" #include "util/svghelper.h" +#define SUPPORT_OLD_POWER_EVENTS 1 +#define PWR_EVENT_EXIT -1 + + static char const *input_name = "perf.data"; static char const *output_name = "output.svg"; @@ -298,12 +302,21 @@ struct trace_entry { int lock_depth; }; -struct power_entry { +#if defined(SUPPORT_OLD_POWER_EVENTS) +static int use_old_power_events; +struct power_entry_old { struct trace_entry te; u64 type; u64 value; u64 cpu_id; }; +#endif + +struct power_processor_entry { + struct trace_entry te; + u32 state; + u32 cpu_id; +}; #define TASK_COMM_LEN 16 struct wakeup_entry { @@ -489,29 +502,51 @@ static int process_sample_event(event_t *event, struct perf_session *session) te = (void *)data.raw_data; if (session->sample_type & PERF_SAMPLE_RAW && data.raw_size > 0) { char *event_str; - struct power_entry *pe; - - pe = (void *)te; +#if defined(SUPPORT_OLD_POWER_EVENTS) + struct power_entry_old *peo; + peo = (void *)te; +#endif event_str = perf_header__find_event(te->type); if (!event_str) return 0; - if (strcmp(event_str, "power:power_start") == 0) - c_state_start(pe->cpu_id, data.time, pe->value); - - if (strcmp(event_str, "power:power_end") == 0) - c_state_end(pe->cpu_id, data.time); + if (strcmp(event_str, "power:cpu_idle") == 0) { + struct power_processor_entry *ppe = (void *)te; + if (ppe->state == (u32)PWR_EVENT_EXIT) + c_state_end(ppe->cpu_id, data.time); + else + c_state_start(ppe->cpu_id, data.time, + ppe->state); + } - if (strcmp(event_str, "power:power_frequency") == 0) - p_state_change(pe->cpu_id, data.time, pe->value); + else if (strcmp(event_str, "power:cpu_frequency") == 0) { + struct power_processor_entry *ppe = (void *)te; + p_state_change(ppe->cpu_id, data.time, ppe->state); + } - if (strcmp(event_str, "sched:sched_wakeup") == 0) + else if (strcmp(event_str, "sched:sched_wakeup") == 0) sched_wakeup(data.cpu, data.time, data.pid, te); - if (strcmp(event_str, "sched:sched_switch") == 0) + else if (strcmp(event_str, "sched:sched_switch") == 0) sched_switch(data.cpu, data.time, te); + +#if defined(SUPPORT_OLD_POWER_EVENTS) + if (use_old_power_events) { + if (strcmp(event_str, "power:power_start") == 0) + c_state_start(peo->cpu_id, data.time, + peo->value); + + else if (strcmp(event_str, "power:power_end") == 0) + c_state_end(data.cpu, data.time); + + else if (strcmp(event_str, + "power:power_frequency") == 0) + p_state_change(peo->cpu_id, data.time, + peo->value); + } +#endif } return 0; } @@ -968,7 +1003,8 @@ static const char * const timechart_usage[] = { NULL }; -static const char *record_args[] = { +#if defined(SUPPORT_OLD_POWER_EVENTS) +static const char * const record_old_args[] = { "record", "-a", "-R", @@ -980,16 +1016,40 @@ static const char *record_args[] = { "-e", "sched:sched_wakeup", "-e", "sched:sched_switch", }; +#endif + +static const char * const record_new_args[] = { + "record", + "-a", + "-R", + "-f", + "-c", "1", + "-e", "power:cpu_frequency", + "-e", "power:cpu_idle", + "-e", "sched:sched_wakeup", + "-e", "sched:sched_switch", +}; static int __cmd_record(int argc, const char **argv) { unsigned int rec_argc, i, j; const char **rec_argv; + const char * const *record_args = record_new_args; + unsigned int record_elems = ARRAY_SIZE(record_new_args); + +#if defined(SUPPORT_OLD_POWER_EVENTS) + if (!is_valid_tracepoint("power:cpu_idle") && + is_valid_tracepoint("power:power_start")) { + use_old_power_events = 1; + record_args = record_old_args; + record_elems = ARRAY_SIZE(record_old_args); + } +#endif - rec_argc = ARRAY_SIZE(record_args) + argc - 1; + rec_argc = record_elems + argc - 1; rec_argv = calloc(rec_argc + 1, sizeof(char *)); - for (i = 0; i < ARRAY_SIZE(record_args); i++) + for (i = 0; i < record_elems; i++) rec_argv[i] = strdup(record_args[i]); for (j = 1; j < (unsigned int)argc; j++, i++) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 4af5bd5..35e3dea 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -906,6 +906,47 @@ static void print_tracepoint_events(void) } /* + * Check whether event is in <debugfs_mount_point>/tracing/events + */ + +int is_valid_tracepoint(const char *event_string) +{ + DIR *sys_dir, *evt_dir; + struct dirent *sys_next, *evt_next, sys_dirent, evt_dirent; + char evt_path[MAXPATHLEN]; + char dir_path[MAXPATHLEN]; + + if (debugfs_valid_mountpoint(debugfs_path)) + return 0; + + sys_dir = opendir(debugfs_path); + if (!sys_dir) + return 0; + + for_each_subsystem(sys_dir, sys_dirent, sys_next) { + + snprintf(dir_path, MAXPATHLEN, "%s/%s", debugfs_path, + sys_dirent.d_name); + evt_dir = opendir(dir_path); + if (!evt_dir) + continue; + + for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next) { + snprintf(evt_path, MAXPATHLEN, "%s:%s", + sys_dirent.d_name, evt_dirent.d_name); + if (!strcmp(evt_path, event_string)) { + closedir(evt_dir); + closedir(sys_dir); + return 1; + } + } + closedir(evt_dir); + } + closedir(sys_dir); + return 0; +} + +/* * Print the help text for the event symbols: */ void print_events(void) diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h index fc4ab3f..7ab4685 100644 --- a/tools/perf/util/parse-events.h +++ b/tools/perf/util/parse-events.h @@ -29,6 +29,7 @@ extern int parse_filter(const struct option *opt, const char *str, int unset); #define EVENTS_HELP_MAX (128*1024) extern void print_events(void); +extern int is_valid_tracepoint(const char *event_string); extern char debugfs_path[]; extern int valid_debugfs_mount(const char *debugfs); -- 1.6.0.2 ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <1294073445-14812-1-git-send-email-trenn@suse.de>]
* [PATCH 1/3] perf: Do not export power_frequency, but power_start event [not found] <1294073445-14812-1-git-send-email-trenn@suse.de> @ 2011-01-03 16:50 ` Thomas Renninger 0 siblings, 0 replies; 9+ messages in thread From: Thomas Renninger @ 2011-01-03 16:50 UTC (permalink / raw) To: j-pihet, mingo, linux-kernel, trenn Cc: Thomas Renninger, Ingo Molnar, Jean Pihet, Arjan van de Ven, linux-kernel, linux-perf-users, rjw power_frequency moved to drivers/cpufreq/cpufreq.c which has to be compiled in, no need to export it. intel_idle can a be module though... Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Jean Pihet <jean.pihet@newoldbits.com> CC: Jean Pihet <j-pihet@ti.com> CC: Arjan van de Ven <arjan@linux.intel.com> CC: linux-kernel@vger.kernel.org CC: linux-perf-users@vger.kernel.org Cc: rjw@sisk.pl LKML-Reference: <1290072314-31155-2-git-send-email-trenn@suse.de> --- drivers/idle/intel_idle.c | 2 -- kernel/trace/power-traces.c | 2 +- 2 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index c131d58..15783d5 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) kt_before = ktime_get_real(); stop_critical_timings(); -#ifndef MODULE trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); -#endif if (!need_resched()) { __monitor((void *)¤t_thread_info()->flags, 0, 0); diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c index a22582a..0e0497d 100644 --- a/kernel/trace/power-traces.c +++ b/kernel/trace/power-traces.c @@ -13,5 +13,5 @@ #define CREATE_TRACE_POINTS #include <trace/events/power.h> -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); -- 1.7.3.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <1291739346-56630-1-git-send-email-trenn@suse.de>]
* [PATCH 1/3] perf: Do not export power_frequency, but power_start event [not found] <1291739346-56630-1-git-send-email-trenn@suse.de> @ 2010-12-07 16:29 ` Thomas Renninger 0 siblings, 0 replies; 9+ messages in thread From: Thomas Renninger @ 2010-12-07 16:29 UTC (permalink / raw) To: trenn, mingo Cc: Thomas Renninger, Ingo Molnar, Jean Pihet, Arjan van de Ven, linux-kernel, linux-perf-users, rjw power_frequency moved to drivers/cpufreq/cpufreq.c which has to be compiled in, no need to export it. intel_idle can a be module though... Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Jean Pihet <jean.pihet@newoldbits.com> CC: Ingo Molnar <mingo@elte.hu> CC: Jean Pihet <j-pihet@ti.com> CC: Arjan van de Ven <arjan@linux.intel.com> CC: linux-kernel@vger.kernel.org CC: linux-perf-users@vger.kernel.org Cc: rjw@sisk.pl LKML-Reference: <1290072314-31155-2-git-send-email-trenn@suse.de> --- drivers/idle/intel_idle.c | 2 -- kernel/trace/power-traces.c | 2 +- 2 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 41665d2..3c95325 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) kt_before = ktime_get_real(); stop_critical_timings(); -#ifndef MODULE trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); -#endif if (!need_resched()) { __monitor((void *)¤t_thread_info()->flags, 0, 0); diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c index a22582a..0e0497d 100644 --- a/kernel/trace/power-traces.c +++ b/kernel/trace/power-traces.c @@ -13,5 +13,5 @@ #define CREATE_TRACE_POINTS #include <trace/events/power.h> -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); -- 1.6.0.2 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Power trace event cleanup by still providing old interface for some time
@ 2010-11-18 13:01 Thomas Renninger
2010-11-18 13:01 ` [PATCH 1/3] PERF: Do not export power_frequency, but power_start event Thomas Renninger
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Renninger @ 2010-11-18 13:01 UTC (permalink / raw)
To: j-pihet, arjan, mingo, linux-kernel, trenn
and another one -> did not include lkml on last changes and corrected Jean's
email address to what he'd like to see in patches.
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/3] PERF: Do not export power_frequency, but power_start event 2010-11-18 13:01 Power trace event cleanup by still providing old interface for some time Thomas Renninger @ 2010-11-18 13:01 ` Thomas Renninger 0 siblings, 0 replies; 9+ messages in thread From: Thomas Renninger @ 2010-11-18 13:01 UTC (permalink / raw) To: j-pihet, arjan, mingo, linux-kernel, trenn power_frequency moved to drivers/cpufreq/cpufreq.c which has to be compiled in, no need to export it. intel_idle can a be module though... Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: Jean Pihet <j-pihet@ti.com> CC: Jean Pihet <j-pihet@ti.com> CC: Arjan van de Ven <arjan@linux.intel.com> CC: Ingo Molnar <mingo@elte.hu> CC: linux-kernel@vger.kernel.org --- drivers/idle/intel_idle.c | 2 -- kernel/trace/power-traces.c | 2 +- 2 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 41665d2..3c95325 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) kt_before = ktime_get_real(); stop_critical_timings(); -#ifndef MODULE trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); -#endif if (!need_resched()) { __monitor((void *)¤t_thread_info()->flags, 0, 0); diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c index a22582a..0e0497d 100644 --- a/kernel/trace/power-traces.c +++ b/kernel/trace/power-traces.c @@ -13,5 +13,5 @@ #define CREATE_TRACE_POINTS #include <trace/events/power.h> -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); -- 1.6.3 ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <1290072314-31155-1-git-send-email-trenn@suse.de>]
* [PATCH 1/3] PERF: Do not export power_frequency, but power_start event [not found] <1290072314-31155-1-git-send-email-trenn@suse.de> @ 2010-11-18 9:25 ` Thomas Renninger 2010-11-18 9:44 ` Jean Pihet 0 siblings, 1 reply; 9+ messages in thread From: Thomas Renninger @ 2010-11-18 9:25 UTC (permalink / raw) To: jean.pihet, arjan, mingo, rjw, trenn; +Cc: linux-kernel power_frequency moved to drivers/cpufreq/cpufreq.c which has to be compiled in, no need to export it. intel_idle can a be module though... Signed-off-by: Thomas Renninger <trenn@suse.de> CC: Jean Pihet <jean.pihet@newoldbits.com> CC: Arjan van de Ven <arjan@linux.intel.com> CC: Ingo Molnar <mingo@elte.hu> CC: linux-kernel@vger.kernel.org --- drivers/idle/intel_idle.c | 2 -- kernel/trace/power-traces.c | 2 +- 2 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 41665d2..3c95325 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) kt_before = ktime_get_real(); stop_critical_timings(); -#ifndef MODULE trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); -#endif if (!need_resched()) { __monitor((void *)¤t_thread_info()->flags, 0, 0); diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c index a22582a..0e0497d 100644 --- a/kernel/trace/power-traces.c +++ b/kernel/trace/power-traces.c @@ -13,5 +13,5 @@ #define CREATE_TRACE_POINTS #include <trace/events/power.h> -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); -- 1.6.3 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] PERF: Do not export power_frequency, but power_start event 2010-11-18 9:25 ` Thomas Renninger @ 2010-11-18 9:44 ` Jean Pihet 0 siblings, 0 replies; 9+ messages in thread From: Jean Pihet @ 2010-11-18 9:44 UTC (permalink / raw) To: Thomas Renninger; +Cc: arjan, mingo, rjw, linux-kernel On Thu, Nov 18, 2010 at 10:25 AM, Thomas Renninger <trenn@suse.de> wrote: > power_frequency moved to drivers/cpufreq/cpufreq.c which has > to be compiled in, no need to export it. > > intel_idle can a be module though... > > Signed-off-by: Thomas Renninger <trenn@suse.de> > CC: Jean Pihet <jean.pihet@newoldbits.com> > CC: Arjan van de Ven <arjan@linux.intel.com> > CC: Ingo Molnar <mingo@elte.hu> > CC: linux-kernel@vger.kernel.org Ok for me! Acked-by: Jean Pihet <j-pihet@ti.com> Note the ti.com email address to be used for Sign-offs and Acks. > --- > drivers/idle/intel_idle.c | 2 -- > kernel/trace/power-traces.c | 2 +- > 2 files changed, 1 insertions(+), 3 deletions(-) > > diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c > index 41665d2..3c95325 100644 > --- a/drivers/idle/intel_idle.c > +++ b/drivers/idle/intel_idle.c > @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) > kt_before = ktime_get_real(); > > stop_critical_timings(); > -#ifndef MODULE > trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); > -#endif > if (!need_resched()) { > > __monitor((void *)¤t_thread_info()->flags, 0, 0); > diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c > index a22582a..0e0497d 100644 > --- a/kernel/trace/power-traces.c > +++ b/kernel/trace/power-traces.c > @@ -13,5 +13,5 @@ > #define CREATE_TRACE_POINTS > #include <trace/events/power.h> > > -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); > +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); > > -- > 1.6.3 > > Thanks, Jean ^ permalink raw reply [flat|nested] 9+ messages in thread
* [RESEND] Power trace event cleanup by still providing old interface for some time
@ 2010-11-11 18:03 Thomas Renninger
2010-11-11 18:03 ` [PATCH 1/3] PERF: Do not export power_frequency, but power_start event Thomas Renninger
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Renninger @ 2010-11-11 18:03 UTC (permalink / raw)
To: mingo; +Cc: trenn, rjw, linux-kernel, arjan, jean.pihet
These have been discussed intensively on the trace/perf lists recently.
Outcome: cleanup power events in a (several kernel rounds) compatible way.
Ingo: As discussed, it would be great to see these in some tree/branch
soon as I'd like to base further cpu_idle cleanups/fixes on top.
Also Jean is waiting for these with further work/patches.
Thanks,
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/3] PERF: Do not export power_frequency, but power_start event 2010-11-11 18:03 [RESEND] Power trace event cleanup by still providing old interface for some time Thomas Renninger @ 2010-11-11 18:03 ` Thomas Renninger 2010-11-15 15:50 ` Jean Pihet 0 siblings, 1 reply; 9+ messages in thread From: Thomas Renninger @ 2010-11-11 18:03 UTC (permalink / raw) To: mingo; +Cc: trenn, rjw, linux-kernel, arjan, jean.pihet power_frequency moved to drivers/cpufreq/cpufreq.c which has to be compiled in, no need to export it. intel_idle can a be module though... Signed-off-by: Thomas Renninger <trenn@suse.de> CC: Jean Pihet <jean.pihet@newoldbits.com> CC: Arjan van de Ven <arjan@linux.intel.com> CC: Ingo Molnar <mingo@elte.hu> CC: linux-kernel@vger.kernel.org --- drivers/idle/intel_idle.c | 2 -- kernel/trace/power-traces.c | 2 +- 2 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 41665d2..3c95325 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) kt_before = ktime_get_real(); stop_critical_timings(); -#ifndef MODULE trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); -#endif if (!need_resched()) { __monitor((void *)¤t_thread_info()->flags, 0, 0); diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c index a22582a..0e0497d 100644 --- a/kernel/trace/power-traces.c +++ b/kernel/trace/power-traces.c @@ -13,5 +13,5 @@ #define CREATE_TRACE_POINTS #include <trace/events/power.h> -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); -- 1.6.3 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] PERF: Do not export power_frequency, but power_start event 2010-11-11 18:03 ` [PATCH 1/3] PERF: Do not export power_frequency, but power_start event Thomas Renninger @ 2010-11-15 15:50 ` Jean Pihet 0 siblings, 0 replies; 9+ messages in thread From: Jean Pihet @ 2010-11-15 15:50 UTC (permalink / raw) To: Thomas Renninger; +Cc: mingo, rjw, linux-kernel, arjan Acked-by: Jean Pihet <j-pihet@ti.com> On Thu, Nov 11, 2010 at 7:03 PM, Thomas Renninger <trenn@suse.de> wrote: > power_frequency moved to drivers/cpufreq/cpufreq.c which has > to be compiled in, no need to export it. > > intel_idle can a be module though... > > Signed-off-by: Thomas Renninger <trenn@suse.de> > CC: Jean Pihet <jean.pihet@newoldbits.com> > CC: Arjan van de Ven <arjan@linux.intel.com> > CC: Ingo Molnar <mingo@elte.hu> > CC: linux-kernel@vger.kernel.org > --- > drivers/idle/intel_idle.c | 2 -- > kernel/trace/power-traces.c | 2 +- > 2 files changed, 1 insertions(+), 3 deletions(-) > > diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c > index 41665d2..3c95325 100644 > --- a/drivers/idle/intel_idle.c > +++ b/drivers/idle/intel_idle.c > @@ -220,9 +220,7 @@ static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state) > kt_before = ktime_get_real(); > > stop_critical_timings(); > -#ifndef MODULE > trace_power_start(POWER_CSTATE, (eax >> 4) + 1, cpu); > -#endif > if (!need_resched()) { > > __monitor((void *)¤t_thread_info()->flags, 0, 0); > diff --git a/kernel/trace/power-traces.c b/kernel/trace/power-traces.c > index a22582a..0e0497d 100644 > --- a/kernel/trace/power-traces.c > +++ b/kernel/trace/power-traces.c > @@ -13,5 +13,5 @@ > #define CREATE_TRACE_POINTS > #include <trace/events/power.h> > > -EXPORT_TRACEPOINT_SYMBOL_GPL(power_frequency); > +EXPORT_TRACEPOINT_SYMBOL_GPL(power_start); > > -- > 1.6.3 > > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-01-03 16:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1291306833-8072-1-git-send-email-trenn@suse.de>
2010-12-02 16:20 ` [PATCH 1/3] perf: Do not export power_frequency, but power_start event Thomas Renninger
[not found] ` <1291306833-8072-3-git-send-email-trenn@suse.de>
2010-12-02 16:20 ` [PATCH 3/3] PERF(userspace): Adjust perf timechart to the new power events Thomas Renninger
[not found] <1294073445-14812-1-git-send-email-trenn@suse.de>
2011-01-03 16:50 ` [PATCH 1/3] perf: Do not export power_frequency, but power_start event Thomas Renninger
[not found] <1291739346-56630-1-git-send-email-trenn@suse.de>
2010-12-07 16:29 ` Thomas Renninger
2010-11-18 13:01 Power trace event cleanup by still providing old interface for some time Thomas Renninger
2010-11-18 13:01 ` [PATCH 1/3] PERF: Do not export power_frequency, but power_start event Thomas Renninger
[not found] <1290072314-31155-1-git-send-email-trenn@suse.de>
2010-11-18 9:25 ` Thomas Renninger
2010-11-18 9:44 ` Jean Pihet
-- strict thread matches above, loose matches on Subject: below --
2010-11-11 18:03 [RESEND] Power trace event cleanup by still providing old interface for some time Thomas Renninger
2010-11-11 18:03 ` [PATCH 1/3] PERF: Do not export power_frequency, but power_start event Thomas Renninger
2010-11-15 15:50 ` Jean Pihet
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®