I also suspect that this bug can cause Ubuntu to crash or behave
abnormally when this bug is triggered. My experience says that when
viewing videos on YouTube, a kernel thread
"kworker/u32:0+events_unbound" starts to eat 100% CPU and the GUI
becomes extremely unresponsive (it updates roughly once in 6-7 seconds).
The only remedy is system reboot.

What is happening below the hood is that the firmware-updater.firmware-
notifier service is trying to access fwupd.service which cannot start
because it is given only 3 minutes to do so but needs 20+ minutes. So
the result is an endless loop:

1. firmware-updater.firmware-notifier tries to query fwupd.service for 
something (firmware silo status ???)
2. rsystemd tries to start fwupd.service.
3. fwupd.service gets stuck in dpaux devices scan due to this nouveau bug for 
20 minutes.
4. 3 minutes after rsystemd tried to start the service, it timeouts it and 
tries to stop it.
5. The stuck fwupd process is unkillable (not even SIGKILL will persuade it to 
stop) so the attempt to stop it fails.
6. firmware-updater.firmware-notifier crashes with a timeout error and is 
rescheduled for immediate restart. This restarts happen several times while the 
dead fwupd process waits for the notice that it was been killed.
7. 20 minutes after the fwupd.service was triggered the fwupd process finally 
dies.
8. firmware-updater.firmware-notifier is restarted and tries to access 
fwupd.service. The cycle repeats.

The result is a constant stream of kernel crashes that persist until the
system is shut down. The /var/log/syslog files can grow to enormous
sizes (412 MiB) while this is happening but thankfully gzip shrinks that
to more manageable 9 MiB. If you happen to watch videos (or maybe
playing games utilizing a 3D engine - the hardware this happens on is a
gaming laptop), something in the 3D engine may clash with the endless
DPCD read requests that end with the kernel oops and cause
"kworker/u32:0+events_unbound".

Another not so pleasant result of this bug is that reboot, suspend or
shutdown takes up to 20 minutes and during that time the system appears
to be frozen. The reason is that the reboot/suspend/shutdown sequence
waits for the wedged fwupd process to unwedge itself and die.

Here is a workaround that might alleviate the problem. Copy
/usr/lib/systemd/system/fwupd.service into /etc/systemd/system, then
edit that copy. Find the TimeoutSec=180 line and add a zero to the value
so it reads TimeoutSec=1800, then restart systemd (run "systemctl
daemon-reload"). This gives the fwupd service 30 minutes to finish its
(broken by kernel) initialization sequence and start normally. Wait 30
minutes and check /ver/log/syslog to verify the kernel crashes stopped.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2098668

Title:
  nouveau crashes when fwupd requests DPCD reads on drm_dp_auxN

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/fwupd/+bug/2098668/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to