O kernel do Ubuntu 18.04 que você está usando atualmente está perdendo uma correção de bug bastante importante.
A correção para isso já está presente na versão 4.16.8 do kernel Linux upstream. (O bug de suspensão efetivamente começou a acontecer na versão do kernel 4.15). O Ubuntu só precisa selecionar esse pequeno patch do upstream. O bug freqüentemente causa falhas no Xorg imediatamente após a suspensão, ou seja, ele trava toda a sessão de login gráfica.
Observe que esse bug geralmente acontece sem mostrando Read-error on swap device
. Na maioria das vezes, não houve erro no log do kernel. (Algumas vezes, ele mostrava EXT4-fs error
e Buffer I/O error
). Além disso, essas mensagens de erro podem ser causadas por uma falha de hardware. Ao diagnosticar este problema, concentre-se em outros detalhes mais distintos.
Um kernel de teste está disponível no final deste bug do Ubuntu, ou seja, neste comentário: link
Até agora, ninguém relatou seus resultados de suspensão com o kernel de teste do Ubuntu. Pode ser que, se alguém puder reportar o sucesso, ele encorajará o desenvolvedor do Ubuntu a finalmente incluir a correção do bug. Eu posso estar errado, não tenho 100% de certeza do que está acontecendo.
Existe também uma solução conhecida. Você pode evitar a falha se você configurar a linha de comando do kernel para incluir a opção scsi_mod.scan=sync
.
This upstream bug has been confirmed to affect Ubuntu users[1]. As per the fix commit (below), the most frequent symptom is a crash of Xorg/Xwayland, i.e. killing the entire GUI, when a laptop is woken from system sleep. Frequency of the bug is described as once every few days[2].
[1] E.g. this user confirms the bug & very specific workaround: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1760450/comments/11
[2] E.g. this log of crashes: https://bugzilla.redhat.com/show_bug.cgi?id=1553979#c23
This is a bug in blk-core.c. It is not specific to any one hardware driver. Technically the suspend bug is triggered by the SCSI core - which is used by all SATA devices.
The commit also includes a test which quickly and reliably proves the existence of a horrifying bug.
I guess you might avoid this bug only if you have root on NVMe. The other way to not hit the Xorg crash is if you don't use all your RAM, so there's no pressure that leads to cold pages of Xorg being swapped. Also, you won't reproduce the Xorg crash if you suspend+resume immediately. (This frustrated my tests at one point, it only triggered after left the system suspended over lunch :).
Fix: "block: do not use interruptible wait anywhere"
in kernel 4.17: https://github.com/torvalds/linux/commit/1dc3039bc87ae7d19a990c3ee71cfd8a9068f428
in kernel 4.16.8: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-4.16.y&id=7859056bc73dea2c3714b00c83b253d4c22bf7b6
lack of fix in 4.15.0-24.26 (ubuntu 18.04): https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/tree/block/blk-core.c?id=Ubuntu-4.15.0-24.26#n856
I.e., this bug is still present in Ubuntu source package linux-4.15.0-24.26 (and 4.15.0-23.25). I attach hardware details (lspci-vnvn.log) of a system where this bug is known to happen.
Regards Alan
WORKAROUND: Use kernel parameter: scsi_mod.scan=sync