Re: [RFC PATCH v2] Softirq:avoid large sched delay from the pending softirqs

From: Thomas Gleixner
Date: Wed Jul 22 2020 - 14:05:27 EST


qianjun.kernel@xxxxxxxxx writes:
> +
> + end = ktime_get();
> + delta = ktime_to_us(end - start);

What's the point of this conversion? That's a division for no value
because you can simply define the maximum time in nanoseconds with the
same effect, i.e.

ktime_t end = ktime_get() + MAX_SOFTIRQ_TIME_NS;

if (need_resched() && ktime_get() > end)
break;

So you can spare all that start, delta and conversion dance and keep the
code simple.

Also notice that need_resched() wants to be evaluated first because
there is no point to do the more expensive time read if need_resched()
is false.

Thanks,

tglx