Subject: Re: [PATCH v3 5/8] net: dsa: hellcreek: Add TAPRIO offloading support

From: Vladimir Oltean <[email-masked]>
Date: Tue, 25 Aug 2020 12:32:19 +0300

On Tue, Aug 25, 2020 at 11:23:56AM +0200, Kurt Kanzenbach wrote:
> On Mon Aug 24 2020, Vinicius Costa Gomes wrote:
> > Hi,
> >
> > Kurt Kanzenbach <[email-masked]> writes:
> >
> [snip]
> >> +	/* Setup timer for schedule switch: The IP core only allows to set a
> >> +	 * cycle start timer 8 seconds in the future. This is why we setup the
> >> +	 * hritmer to base_time - 5 seconds. Then, we have enough time to
> >> +	 * activate IP core's EST timer.
> >> +	 */
> >> +	start = ktime_sub_ns(schedule->base_time, (u64)5 * NSEC_PER_SEC);
> >> +	hrtimer_start_range_ns(&hellcreek_port->cycle_start_timer, start,
> >> +			       NSEC_PER_SEC, HRTIMER_MODE_ABS);
> >
> > If we are talking about seconds here, I don't think you need to use a
> > hrtimer, you could use a workqueue/delayed_work. Should make things a
> > bit simpler.
> 
> I've used hrtimers for one reason: The hrtimer provides a way to fire at
> an absolute base time based on CLOCK_TAI. All the other facilities such
> as workqueues, timer list timers, etc do not.

That still doesn't justify the complexity of irqsave spinlocks and such.
You could just as well schedule a workqueue from that hrtimer and have
process context...

Thanks,
-Vladimir