From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752444AbbKPKW6 (ORCPT ); Mon, 16 Nov 2015 05:22:58 -0500 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:39426 "EHLO mx0a-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750797AbbKPKW4 (ORCPT ); Mon, 16 Nov 2015 05:22:56 -0500 From: Jisheng Zhang To: , CC: , , Jisheng Zhang Subject: [PATCH v2 RESEND] arm: add cpu_idle tracepoints to arch_cpu_idle Date: Mon, 16 Nov 2015 18:18:54 +0800 Message-ID: <1447669134-6705-1-git-send-email-jszhang@marvell.com> X-Mailer: git-send-email 2.6.2 MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-11-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-1511160171 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.6.2