Re: [RFC PATCH 0/4] softirq: Per vector threading v3

From: David Miller
Date: Tue Jan 23 2018 - 13:24:33 EST


From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 23 Jan 2018 09:42:32 -0800

> But I wonder if the test triggers the "lets run lots of workqueue
> threads", and then the single-threaded user space just gets blown out
> of the water by many kernel threads. Each thread gets its own "fair"
> amount of CPU, but..

If a single cpu's softirq deferral can end up running on multiple
workqueue threads, indeed that's a serious problem.

So if we're in a workqueue and it does a:

schedule_work_on(this_cpu, currently_executing_work);

it'll potentially make a new thread?

That's exactly the code path that will get exercised during a UDP
flood the way that vector_work_func() is implemented.