We have an issue the i.MX7D freezes on “Restarting system” kernel message on about 50% of the time.
This issue only happens if we uses the Preemptible Kernel (Low-Latency Desktop). It does not happen on i.MX7s processor.
The board is only restarted after watchdog timeout (default=128 sec).
[ OK ] Reached target Shutdown.
[ 44.313527] systemd-shutdow: 19 output lines suppressed due to ratelimiting
[ 44.438012] systemd-shutdown[1]: Sending SIGTERM to remaining processes...
[ 44.454862] systemd-journald[182]: Received SIGTERM from PID 1 (systemd-shutdow).
[ 44.476167] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
[ 44.491640] systemd-shutdown[1]: Hardware watchdog 'rn5t618-wdt', version 0
[ 44.501584] systemd-shutdown[1]: Unmounting file systems.
[ 44.507958] systemd-shutdown[1]: Remounting '/' read-only with options ''.
[ 44.525182] UBIFS (ubi0:3): background thread "ubifs_bgt0_3" stops
[ 44.532539] systemd-shutdown[1]: Remounting '/' read-only with options ''.
[ 44.539858] systemd-shutdown[1]: All filesystems unmounted.
[ 44.545736] systemd-shutdown[1]: Deactivating swaps.
[ 44.550941] systemd-shutdown[1]: All swaps deactivated.
[ 44.556308] systemd-shutdown[1]: Detaching loop devices.
[ 44.572539] ci_hdrc ci_hdrc.1: remove, state 4
[ 44.577177] usb usb2: USB disconnect, device number 1
[ 44.582975] ci_hdrc ci_hdrc.1: USB bus 2 deregistered
[ 44.590994] ci_hdrc ci_hdrc.0: remove, state 4
[ 44.595575] usb usb1: USB disconnect, device number 1
[ 44.601191] ci_hdrc ci_hdrc.0: USB bus 1 deregistered
[ 44.632891] reboot: Restarting system
If we enable the flags debug and initcall_debug on kernel command line to debug the problem does not appear anymore.
We have tried also remove the USB drivers from the kernel but do not solve the problem.
root@iMX7D-6201:~# uname -a
Linux iMX7D-6201 4.9.87-dirty #10 SMP PREEMPT Wed Jan 2 18:48:32 -02 2019 armv7l GNU/Linux
The only kernel modification is:
(*) Kernel features -> Preemption Model (Preemptible Kernel (Low-Latency Desktop)) --> Timer frequency (1000 Hz)
I also pass the flag threadirqs to kernel command line.
I do not have other logs, it is always the same. I just guessed the USB because it was the last log to print, but either disabling the USB the problem persist.
We uses an own carrier board, but the problem also happens on Aster carrier board. It’s very easy to reproduce, just compile the kernel with the above kernel feature and try to reboot e.g. 4 times.
Note that beta versions before BSP 2.8b5 are no longer supported as may be seen from our support strategy here. Please update at your earliest convenience.