From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752881AbbIPRgw (ORCPT ); Wed, 16 Sep 2015 13:36:52 -0400 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:24722 "EHLO mx0a-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752031AbbIPRgv (ORCPT ); Wed, 16 Sep 2015 13:36:51 -0400 From: Jisheng Zhang To: , , , , CC: , , Jisheng Zhang Subject: [PATCH v2] arm: add cpu_idle tracepoints to arch_cpu_idle Date: Thu, 17 Sep 2015 01:32:40 +0800 Message-ID: <1442424760-4104-1-git-send-email-jszhang@marvell.com> X-Mailer: git-send-email 2.5.1 MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-09-16_05:,, signatures=0 X-Proofpoint-Spam-Details: rule=inbound_notspam policy=inbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1507310000 definitions=main-1509160219 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- Since v1: - ignore arm_pm_idle. arch/arm/kernel/process.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 7a7c4ce..83d2dc5 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -66,11 +67,15 @@ void (*arm_pm_idle)(void); void arch_cpu_idle(void) { - if (arm_pm_idle) + if (arm_pm_idle) { arm_pm_idle(); - else + local_irq_enable(); + } else { + trace_cpu_idle_rcuidle(1, smp_processor_id()); cpu_do_idle(); - local_irq_enable(); + local_irq_enable(); + trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id()); + } } void arch_cpu_idle_prepare(void) -- 2.5.1