From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753014AbcBZJrl (ORCPT ); Fri, 26 Feb 2016 04:47:41 -0500 Received: from mx0b-0016f401.pphosted.com ([67.231.156.173]:55651 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751255AbcBZJri (ORCPT ); Fri, 26 Feb 2016 04:47:38 -0500 Date: Fri, 26 Feb 2016 17:43:15 +0800 From: Jisheng Zhang To: Daniel Lezcano , Viresh Kumar CC: , "open list:ARM/STI ARCHITECTURE" , Patrice Chotard , "open list:CLOCKSOURCE, CLOC..." , "Srinivas Kandagatla" , "moderated list:ARM/STI ARCHITECTURE" , Maxime Coquelin Subject: Re: [PATCH 8/9] clockevents/drivers/arm_global_timer: Implement ->set_state_oneshot_stopped() Message-ID: <20160226174315.392a2b6d@xhacker> In-Reply-To: <1456407438-6131-8-git-send-email-daniel.lezcano@linaro.org> References: <56CF00F6.9010301@linaro.org> <1456407438-6131-1-git-send-email-daniel.lezcano@linaro.org> <1456407438-6131-8-git-send-email-daniel.lezcano@linaro.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-02-26_07:,, signatures=0 X-Proofpoint-Details: rule=outbound_notspam policy=outbound 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-1601100000 definitions=main-1602260187 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dear Daniel, Viresh, On Thu, 25 Feb 2016 14:37:16 +0100 Daniel Lezcano wrote: > From: Viresh Kumar > > set_state_oneshot_stopped() is called by the clkevt core, when the next > event is required at an expiry time of 'KTIME_MAX'. This normally > happens with NO_HZ_{IDLE|FULL} in both LOWRES/HIGHRES modes. > > This patch makes the clockevent device to stop on such an event, to > avoid spurious interrupts, as explained by: commit 8fff52fd5093 > ("clockevents: Introduce CLOCK_EVT_STATE_ONESHOT_STOPPED state"). Inspired by this commit, I think dw_apb_timer also needs similar patch because it only supports PERIODIC mode and the driver emulate ONESHOT over that" as described in commit 8fff52fd5093. What do you think? I'm cooking one patch for this purpose. Thanks for the inspiration, Jisheng > > Signed-off-by: Viresh Kumar > Signed-off-by: Daniel Lezcano > --- > drivers/clocksource/arm_global_timer.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c > index 36998fa..9df0d16 100644 > --- a/drivers/clocksource/arm_global_timer.c > +++ b/drivers/clocksource/arm_global_timer.c > @@ -175,6 +175,7 @@ static int gt_clockevents_init(struct clock_event_device *clk) > clk->set_state_shutdown = gt_clockevent_shutdown; > clk->set_state_periodic = gt_clockevent_set_periodic; > clk->set_state_oneshot = gt_clockevent_shutdown; > + clk->set_state_oneshot_stopped = gt_clockevent_shutdown; > clk->set_next_event = gt_clockevent_set_next_event; > clk->cpumask = cpumask_of(cpu); > clk->rating = 300;