Hi Dirk, On Tue, Aug 11, 2020 at 12:58:15PM +0200, Dirk Kostrewa wrote: > Hi Salavatore, > > as an additional control, I have completely uninstalled the nvidia graphics > driver and repeated the kworker observations using the nouveau graphics > driver with the kernel 4.19.0-10-amd64. This time, there are even two > kworker processes constantly running with high CPU load: > > $ top > top - 12:37:20 up 10 min, 4 users, load average: 2.79, 2.54, 1.56 > Tasks: 197 total, 3 running, 194 sleeping, 0 stopped, 0 zombie > %Cpu(s): 0.0 us, 24.2 sy, 0.0 ni, 74.2 id, 0.0 wa, 0.0 hi, 1.6 si, 0.0 > st > MiB Mem : 15889.4 total, 13964.7 free, 626.8 used, 1297.9 buff/cache > MiB Swap: 0.0 total, 0.0 free, 0.0 used. 14849.1 avail Mem > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 164 root 20 0 0 0 0 R 80.0 0.0 8:41.67 > kworker/6:2+pm > 455 root 20 0 0 0 0 R 80.0 0.0 8:28.23 > kworker/2:2+pm > 22 root 20 0 0 0 0 S 20.0 0.0 2:14.82 > ksoftirqd/2 > 42 root 20 0 0 0 0 S 20.0 0.0 2:08.67 > ksoftirqd/6 > 1 root 20 0 169644 10212 7796 S 0.0 0.1 0:01.52 systemd > 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd > 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp > 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 > rcu_par_gp > 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 > kworker/0:0H-kblockd > 7 root 20 0 0 0 0 I 0.0 0.0 0:00.05 > kworker/u16:0-event+ > > The stacks of the two kworker processes show the same output: > > [<0>] 0xffffffffffffffff > > I have appended the top 5000 lines tracing as a compressed ascii file > out-cut.txt,gz and the dmesg output as compressed ascii file dmesg.txt.gz. > > I hope, this helps to find out where the problem with the high CPU load of > the kworker processes come from.
Thanks this is very helpful. I suspect what you are seeing is an issue with the usb hubport present before but now uncovered due to the upstream change e9fb08d617bf ("xhci: prevent bus suspend if a roothub port detected a over-current condition")[1], which was as well backported to v4.19.y in 4.19.119. Can you add some dynamic debugging on the 'drivers/usb/'[2] ideally at boot time. On runtime it is # echo 'file drivers/usb/* +p;' > /sys/kernel/debug/dynamic_debug/control or as kernel parameter to have enable the debug messages at boot time already: dyndbg="file drivers/usb/* +p;" Can you attach the dmesg with the enabled debugging? Regards, Salvatore [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9fb08d617bfae5471d902112667d0eeb9dee3c4 [2] https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html