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