[PATCH] arm: add cpu_idle tracepoints to arch_cpu_idle

Subsystems: arm port, the rest

STALE3972d

4 messages, 3 authors, 2015-09-16 · open the first message on its own page

[PATCH] arm: add cpu_idle tracepoints to arch_cpu_idle

From: Jisheng Zhang <hidden>
Date: 2015-09-16 14:41:05

Currently, if cpuidle is disabled or not supported, powertop reports
zero wakeups and zero events. This is due to the cpu_idle tracepoints
are missing.

This patch is to make cpu_idle tracepoints always available even if
cpuidle is disabled or not supported.

Signed-off-by: Jisheng Zhang <redacted>
---
 arch/arm/kernel/process.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index f192a2a..aa78e09 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -28,6 +28,7 @@
 #include <linux/random.h>
 #include <linux/hw_breakpoint.h>
 #include <linux/leds.h>
+#include <trace/events/power.h>
 
 #include <asm/processor.h>
 #include <asm/thread_notify.h>
@@ -66,11 +67,13 @@ void (*arm_pm_idle)(void);
 
 void arch_cpu_idle(void)
 {
+	trace_cpu_idle_rcuidle(1, smp_processor_id());
 	if (arm_pm_idle)
 		arm_pm_idle();
 	else
 		cpu_do_idle();
 	local_irq_enable();
+	trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
 }
 
 void arch_cpu_idle_prepare(void)
-- 
2.5.1

Re: [PATCH] arm: add cpu_idle tracepoints to arch_cpu_idle

From: Russell King - ARM Linux <hidden>
Date: 2015-09-16 16:28:34

On Wed, Sep 16, 2015 at 10:37:00PM +0800, Jisheng Zhang wrote:
Currently, if cpuidle is disabled or not supported, powertop reports
zero wakeups and zero events. This is due to the cpu_idle tracepoints
are missing.

This patch is to make cpu_idle tracepoints always available even if
cpuidle is disabled or not supported.
This seems like a hack to me.  These are cpu_idle tracepoints which
tell people when something happens in cpuidle.  If cpuidle is disabled,
then surely the tracepoints shouldn't fire.

However, I'll leave it to the tracing people to have the final word on
whether this is the right thing to do as I've very little experience
with the tracing design.
quoted hunk
Signed-off-by: Jisheng Zhang <redacted>
---
 arch/arm/kernel/process.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index f192a2a..aa78e09 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -28,6 +28,7 @@
 #include <linux/random.h>
 #include <linux/hw_breakpoint.h>
 #include <linux/leds.h>
+#include <trace/events/power.h>
 
 #include <asm/processor.h>
 #include <asm/thread_notify.h>
@@ -66,11 +67,13 @@ void (*arm_pm_idle)(void);
 
 void arch_cpu_idle(void)
 {
+	trace_cpu_idle_rcuidle(1, smp_processor_id());
 	if (arm_pm_idle)
 		arm_pm_idle();
 	else
 		cpu_do_idle();
 	local_irq_enable();
+	trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
 }
 
 void arch_cpu_idle_prepare(void)
-- 
2.5.1
-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

Re: [PATCH] arm: add cpu_idle tracepoints to arch_cpu_idle

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2015-09-16 16:41:34

[ Added Arjan, as he knows powertop better, as well as
 Thomas Renninger, that added the cpu_idle trace event ]

On Wed, 16 Sep 2015 17:28:18 +0100
Russell King - ARM Linux [off-list ref] wrote:
On Wed, Sep 16, 2015 at 10:37:00PM +0800, Jisheng Zhang wrote:
quoted
Currently, if cpuidle is disabled or not supported, powertop reports
zero wakeups and zero events. This is due to the cpu_idle tracepoints
are missing.

This patch is to make cpu_idle tracepoints always available even if
cpuidle is disabled or not supported.
This seems like a hack to me.  These are cpu_idle tracepoints which
tell people when something happens in cpuidle.  If cpuidle is disabled,
then surely the tracepoints shouldn't fire.

However, I'll leave it to the tracing people to have the final word on
whether this is the right thing to do as I've very little experience
with the tracing design.
Adding back the change log for the original patch:

"Currently, if cpuidle is disabled or not supported, powertop reports
zero wakeups and zero events. This is due to the cpu_idle tracepoints
are missing.

This patch is to make cpu_idle tracepoints always available even if
cpuidle is disabled or not supported."

This is the same code that sits in x86. I'm assuming it is fine. But
I'm not an expert on the cpu_idle trace event.

-- Steve

quoted
Signed-off-by: Jisheng Zhang <redacted>
---
 arch/arm/kernel/process.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index f192a2a..aa78e09 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -28,6 +28,7 @@
 #include <linux/random.h>
 #include <linux/hw_breakpoint.h>
 #include <linux/leds.h>
+#include <trace/events/power.h>
 
 #include <asm/processor.h>
 #include <asm/thread_notify.h>
@@ -66,11 +67,13 @@ void (*arm_pm_idle)(void);
 
 void arch_cpu_idle(void)
 {
+	trace_cpu_idle_rcuidle(1, smp_processor_id());
 	if (arm_pm_idle)
 		arm_pm_idle();
 	else
 		cpu_do_idle();
 	local_irq_enable();
+	trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
 }
 
 void arch_cpu_idle_prepare(void)
-- 
2.5.1

Re: [PATCH] arm: add cpu_idle tracepoints to arch_cpu_idle

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2015-09-16 17:00:58

On Wed, 16 Sep 2015 12:41:28 -0400
Steven Rostedt [off-list ref] wrote:
[ Added Arjan, as he knows powertop better, as well as
 Thomas Renninger, that added the cpu_idle trace event ]

On Wed, 16 Sep 2015 17:28:18 +0100
Russell King - ARM Linux [off-list ref] wrote:
quoted
On Wed, Sep 16, 2015 at 10:37:00PM +0800, Jisheng Zhang wrote:
quoted
Currently, if cpuidle is disabled or not supported, powertop reports
zero wakeups and zero events. This is due to the cpu_idle tracepoints
are missing.

This patch is to make cpu_idle tracepoints always available even if
cpuidle is disabled or not supported.
This seems like a hack to me.  These are cpu_idle tracepoints which
tell people when something happens in cpuidle.  If cpuidle is disabled,
then surely the tracepoints shouldn't fire.

However, I'll leave it to the tracing people to have the final word on
whether this is the right thing to do as I've very little experience
with the tracing design.
Adding back the change log for the original patch:
Bah, it was in the original email. I accidentally double clicked on the
reply part, and claws-mail collapsed it. I never read the change log
via this email because of that.

Sorry Russell, my mistake :-/

-- Steve

"Currently, if cpuidle is disabled or not supported, powertop reports
zero wakeups and zero events. This is due to the cpu_idle tracepoints
are missing.

This patch is to make cpu_idle tracepoints always available even if
cpuidle is disabled or not supported."

This is the same code that sits in x86. I'm assuming it is fine. But
I'm not an expert on the cpu_idle trace event.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help