Re: [PATCH v2] tick/broadcast: Allow later registered device enter oneshot mode

From: Thomas Gleixner
Date: Wed Mar 31 2021 - 04:07:55 EST


On Wed, Mar 31 2021 at 09:10, Jindong Yue wrote:
> --- a/kernel/time/tick-broadcast.c
> +++ b/kernel/time/tick-broadcast.c
> @@ -47,6 +47,7 @@ static inline void tick_resume_broadcast_oneshot(struct clock_event_device *bc)
> static inline void tick_broadcast_oneshot_offline(unsigned int cpu) { }
> # endif
> #endif
> +static void tick_handle_oneshot_broadcast(struct clock_event_device *dev);

Leftover ...

> /*
> * Debugging: see timer_list.c
> @@ -107,6 +108,19 @@ void tick_install_broadcast_device(struct clock_event_device *dev)
> tick_broadcast_device.evtdev = dev;
> if (!cpumask_empty(tick_broadcast_mask))
> tick_broadcast_start_periodic(dev);
> +
> + if (!(dev->features & CLOCK_EVT_FEAT_ONESHOT))
> + return;
> +
> + /*
> + * If system already runs in oneshot mode, switch new registered

the system .... the newly registered

> + * broadcast device to oneshot mode explicitly if possiable.

s/possible/possiable/

But the 'if possible' makes no sense here. The above check for
CLOCK_EVT_FEAT_ONESHOT established that it _is_ possible. So just remove
the 'if ...'.

> + */
> + if (tick_broadcast_oneshot_active()) {
> + tick_broadcast_switch_to_oneshot();
> + return;
> + }

Thanks,

tglx