Re: [PATCH V6 1/1] Softirq:avoid large sched delay from the pending softirqs
From: peterz
Date: Mon Sep 14 2020 - 10:15:48 EST
On Mon, Sep 14, 2020 at 12:27:35PM +0100, Qais Yousef wrote:
> What does PREEMPT_RT do to deal with softirqs delays?
Makes the lot preemptible, you found the patch below.
> I have tried playing with enabling threadirqs, which AFAIU should make softirqs
> preemptible, right?
Not yet,..
> I realize this patch is still missing from mainline at least:
>
> https://gitlab.com/kalilinux/packages/linux/blob/a17bad0db9da44cd73f594794a58cc5646393b13/debian/patches-rt/softirq-Add-preemptible-softirq.patch
>
> Would this be a heavy handed approach to make available for non PREEMPT_RT
> kernels?
Not sure, I suspect it relies on migrate_disable(), which is
preempt_disable() on !RT and then we're back to square one.
> I only worry about potential NET_RX throughput issues. Which by the way is
> protected with preempt_disable currently in mainline. See netif_rx_ni().
So preempt_disable() isn't necessairily a problem, you just want it to
terminate soonish after need_resched() becomes true. Also, I'm having a
wee problem getting from net_rx_action() to netif_rx_ni()
> I am guessing here, but I suspect this NET_RX softirq is one source of big
> delays when network activity is high.
Well, one approach is to more agressively limit how long softirq
processing can run. Current measures are very soft in that regard.