Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1343977

Re: [PATCH 8/9] clockevents/drivers/arm_global_timer: Implement ->set_state_oneshot_stopped()

From Jisheng Zhang <jszhang@marvell.com>
Newsgroups linux.kernel
Subject Re: [PATCH 8/9] clockevents/drivers/arm_global_timer: Implement ->set_state_oneshot_stopped()
Date 2016-02-26 10:50 +0100
Message-ID <r6nc8-17o-41@gated-at.bofh.it> (permalink)
References <r649s-4mJ-13@gated-at.bofh.it> <r64j8-4qI-15@gated-at.bofh.it> <r64j9-4qI-41@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Dear Daniel, Viresh,

On Thu, 25 Feb 2016 14:37:16 +0100 Daniel Lezcano wrote:

> From: Viresh Kumar <viresh.kumar@linaro.org>
> 
> 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 <viresh.kumar@linaro.org>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  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;

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

[PULL] : clockevents for 4.6 Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:30 +0100
  [PATCH 3/9] clocksource/drivers/lpc32xx: Don't use the prescaler counter for clockevents Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
  [PATCH 5/9] clocksource/drivers/lpc32xx: Support timer-based ARM delay Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
  [PATCH 9/9] clockevents/drivers/exynos_mct: Implement ->set_state_oneshot_stopped() Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
  [PATCH 2/9] clocksource/drivers/rockchip: Add err handle for rk_timer_init Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
  [PATCH 1/9] clocksource/drivers/arm_arch_timer: Enable and verify MMIO access Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
    [PATCH 8/9] clockevents/drivers/arm_global_timer: Implement ->set_state_oneshot_stopped() Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
      Re: [PATCH 8/9] clockevents/drivers/arm_global_timer: Implement  ->set_state_oneshot_stopped() Jisheng Zhang <jszhang@marvell.com> - 2016-02-26 10:50 +0100
    [PATCH 7/9] clockevents/drivers/arm_arch_timer: Implement ->set_state_oneshot_stopped() Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
    [PATCH 6/9] clocksource/drivers/arm_global_timer: Register delay timer Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100
    [PATCH 4/9] clocksource/drivers/lpc32xx: Support periodic mode Daniel Lezcano <daniel.lezcano@linaro.org> - 2016-02-25 14:40 +0100

csiph-web