Re: [PATCH] revert: "softirq: Let ksoftirqd do its job"
From: Eric Dumazet <edumazet@google.com>
Date: 2023-05-09 09:03:02
Also in:
lkml
On Tue, May 9, 2023 at 3:42 AM Jakub Kicinski [off-list ref] wrote:
On Mon, 8 May 2023 08:17:44 +0200 Paolo Abeni wrote:quoted
Due to the mentioned commit, when the ksoftirqd processes take charge of softirq processing, the system can experience high latencies. In the past a few workarounds have been implemented for specific side-effects of the above: commit 1ff688209e2e ("watchdog: core: make sure the watchdog_worker is not deferred") commit 8d5755b3f77b ("watchdog: softdog: fire watchdog even if softirqs do not get to run") commit 217f69743681 ("net: busy-poll: allow preemption in sk_busy_loop()") commit 3c53776e29f8 ("Mark HI and TASKLET softirq synchronous") but the latency problem still exists in real-life workloads, see the link below. The reverted commit intended to solve a live-lock scenario that can now be addressed with the NAPI threaded mode, introduced with commit 29863d41bb6e ("net: implement threaded-able napi poll loop support"), and nowadays in a pretty stable status. While a complete solution to put softirq processing under nice resource control would be preferable, that has proven to be a very hard task. In the short term, remove the main pain point, and also simplify a bit the current softirq implementation. Note that this change also reverts commit 3c53776e29f8 ("Mark HI and TASKLET softirq synchronous") and commit 1342d8080f61 ("softirq: Don't skip softirq execution when softirq thread is parking"), which are direct follow-ups of the feature commit. A single change is preferred to avoid known bad intermediate states introduced by a patch series reverting them individually. Link: https://lore.kernel.org/netdev/305d7742212cbe98621b16be782b0562f1012cb6.camel@redhat.com/ (local) Signed-off-by: Paolo Abeni <pabeni@redhat.com> Tested-by: Jason Xing <redacted>Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com> Thanks.