Debian 10 Buster on Cubietruck with bug in sun4i_drm_hdmi

0

I have a new installation of Debian 10 Buster for ARM (armhf) on a Cubietruck (aka Cubieboard 3, http://cubieboard.org/model/). The base system was installed on 2020-01-04 and is up to date. Note that the Cubietruck uses an Allwinner A20 SoC, and the bug seems to be related to this very hardware.

Debian 8 worked perfectly on the Cubietruck, but when I upgraded to Debian 10, a process called kworker/1:x-events takes 8% CPU in the long term average and, about every 10 seconds, blocks hard disk IO so that the system becomes unusable.

I tried the following:

su root
apt-get install linux-perf
perf record -a -g sleep 10 # writes perf.data into the current directory
perf report

This shows the processes taking up most CPU time. Here is the top of the list

Samples: 2K of event 'cycles:ppp', Event count (approx.): 532078838
  Children      Self  Command          Shared Object             Symbol
+   89.45%     0.00%  kworker/1:5-eve  [kernel.kallsyms]         [k] ret_from_fork
+   89.45%     0.00%  kworker/1:5-eve  [kernel.kallsyms]         [k] kthread
+   89.45%     0.01%  kworker/1:5-eve  [kernel.kallsyms]         [k] worker_thread
+   89.34%     0.03%  kworker/1:5-eve  [kernel.kallsyms]         [k] process_one_work
+   89.23%     0.00%  kworker/1:5-eve  [drm_kms_helper]          [k] output_poll_execute
+   89.23%     0.00%  kworker/1:5-eve  [drm_kms_helper]          [k] drm_helper_probe_detect_ctx
+   86.17%    32.82%  kworker/1:5-eve  [sun4i_drm_hdmi]          [k] sun4i_hdmi_connector_detect
+   55.74%    44.12%  kworker/1:5-eve  [kernel.kallsyms]         [k] ktime_get
+   11.79%     6.71%  kworker/1:5-eve  [kernel.kallsyms]         [k] arch_counter_read
+    6.39%     6.39%  kworker/1:5-eve  [kernel.kallsyms]         [k] arch_counter_get_cntpct
[...]

This was just a minute after a reboot, and the kworker-1:5-events clearly takes too much CPU time. Apparently, there are some kernel functions that are out of control here. From the statistics, the candidates are sun4i_hdmi_connector_detect or ktime_get.

I looked for kernel modules with names similar to the offending functions. When I created a file /etc/modprobe.d/blacklist.conf with a single line

blacklist sun4i_drm_hdmi

the problem disappeared. So I am pretty sure it is this module that malfunctions on the Cubietruck.

For me, the problem is solved here (because the Cubietruck does not have any HDMI and I could not care less about that kernel module), but I'd like to leave an online record of this fix.

Kind regards,

HPF

HPF

Posted 2020-01-06T08:20:57.607

Reputation: 1

No answers