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