From: Linus Torvalds <torva...@linux-foundation.org> 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.