From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752099AbcBWKIH (ORCPT ); Tue, 23 Feb 2016 05:08:07 -0500 Received: from e23smtp08.au.ibm.com ([202.81.31.141]:51135 "EHLO e23smtp08.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751268AbcBWKID (ORCPT ); Tue, 23 Feb 2016 05:08:03 -0500 X-IBM-Helo: d23dlp02.au.ibm.com X-IBM-MailFrom: shreyas@linux.vnet.ibm.com X-IBM-RcptTo: linux-kernel@vger.kernel.org;linux-pm@vger.kernel.org Message-ID: <56CC2F38.5070507@linux.vnet.ibm.com> Date: Tue, 23 Feb 2016 15:36:48 +0530 From: Shreyas B Prabhu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.0 MIME-Version: 1.0 To: Daniel Lezcano CC: tglx@linutronix.de, peterz@infradead.org, rafael@kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, nicolas.pitre@linaro.org, vincent.guittot@linaro.org Subject: Re: [PATCH V3 2/2] sched: idle: IRQ based next prediction for idle period References: <1455637383-14412-1-git-send-email-daniel.lezcano@linaro.org> <1455637383-14412-2-git-send-email-daniel.lezcano@linaro.org> In-Reply-To: <1455637383-14412-2-git-send-email-daniel.lezcano@linaro.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16022310-0029-0000-0000-00004419512D Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/16/2016 09:13 PM, Daniel Lezcano wrote: [...] > + if (index < 0) { > + /* > + * No idle callbacks fulfilled the constraints, jump > + * to the default function like there wasn't any > + * cpuidle driver. > + */ > + goto default_idle; > + } else { > + /* > + * Enter the idle state previously returned by the > + * governor decision. This function will block until > + * an interrupt occurs and will take care of > + * re-enabling the local interrupts > + */ > + return cpuidle_enter(drv, dev, index); Minor point. You are not calling rcu_idle_exit() in else block. This should probably be ret = cpuidle_enter(drv, dev, index); goto out; > + } > + > +default_idle: > + default_idle_call(); > +out: > + rcu_idle_exit(); > + return ret; > +} > Thanks, Shreyas