From: jun qian <qianjun.ker...@gmail.com> When get the pending softirqs, it need to process all the pending softirqs in the while loop. If the processing time of each pending softirq is need more than 2 msec in this loop, or one of the softirq will running a long time, according to the original code logic, it will process all the pending softirqs without wakeuping ksoftirqd, which will cause a relatively large scheduling delay on the corresponding CPU, which we do not wish to see. The patch will check the total time to process pending softirq, if the time exceeds 2 ms we need to wakeup the ksofirqd to aviod large sched delay.
jun qian (4): softirq: Use sched_clock() based timeout softirq: Factor loop termination condition softirq: Rewrite softirq processing loop softirq: Allow early break the softirq processing loop kernel/softirq.c | 168 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 120 insertions(+), 48 deletions(-) -- 1.8.3.1