The entire Pixel 3a appears to lockup and stop responding after some amount of usage. I can't reliably figure out a way to trigger the lock up, but I have observed it to happen sometimes coming back from suspend (after about a few seconds where it works), on a fresh boot after a few minutes, launching apps, etc.
Of note is that this appears to have started happening in the past two weeks on edge. I don't experience this issue on v24.06. It makes me suspect some package update recently may have caused it.
I could only so far trigger this with Plasma Mobile, I am not sure if it's a Plasma issue or it's exacerbated by Plasma's heavier use of the GPU over other DEs (UPDATE: I just experienced this issue while in gdm, not logged into any session so it's probably not Plasma specific). Of note is that I only encounter this lockup issue on the Pixel 3a specifically, and not on my OnePlus 6.
What's the expected behaviour?
The device does not lockup.
What's the current behaviour?
After some usage, the entire device locks up, with even SSH being unresponsive. I can't switch to the TTY either.
How to reproduce your issue?
Use the device for a bit with Plasma Mobile, and you will probably experience it.
What device are you using?
google-sargo
On what postmarketOS version did you encounter the issue?
edge (master branch)
v24.06
v23.12 (supported until 2024-07-16)
I confirm that the issue still is present after running sudo apk upgrade -a
On what environment did you encounter the issue?
Environments
GNOME Shell on Mobile
Phosh
Plasma Mobile
Sxmo (Wayland/Sway) Please post the output of sxmo_version.sh
I spoke too soon, it's probably not related to iio-sensor-proxy since I disabled the service and still get system lockup a few seconds after waking from suspend with these logs:
[Jul 27 00:35:22] daemon dbus-daemon[1796]: [system] Activating service name='org.freedesktop.nm_dispatcher' requested by ':1.3' (uid=0 pid=2006 comm="/usr/sbin/NetworkManager -n") (using servicehelper) [Jul 27 00:35:22] daemon dbus-daemon[1796]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' [Jul 27 00:35:23] daemon supervise-daemon[4990]: Child command line: /usr/bin/hexagonrpcd -f /dev/fastrpc-adsp -d adsp -s -R /usr/share/qcom/sdm670/Google/sargo [Jul 27 00:35:23] daemon supervise-daemon[1020]: /usr/bin/hexagonrpcd, pid 4990, exited with return code 4 [Jul 27 00:35:25] user pulseaudio[3804]: [pulseaudio] alsa-ucm.c: Failed to set verb HiFi [Jul 27 00:35:25] user pulseaudio[3804]: [pulseaudio] udev-util.c: Failed to get card object. [Jul 27 00:35:25] user pulseaudio[3804]: [pulseaudio] module-alsa-card.c: Failed to find a working profile. [Jul 27 00:35:25] user pulseaudio[3804]: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: "device_id="0" name="platform-sound" card_name="alsa_card.platform-sound" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed. [Jul 27 00:35:25] daemon supervise-daemon[5003]: Child command line: /usr/bin/hexagonrpcd -f /dev/fastrpc-adsp -d adsp -s -R /usr/share/qcom/sdm670/Google/sargo
It's because of the service for FastRPC. The FastRPC service is used to serve some proprietary files to the DSP, and was enabled to support sensors.
Workaround:
# rc-service hexagonrpcd-adsp-sensorspd stop# rc-update del hexagonrpcd-adsp-sensorspd
We may need to stop enabling it by default and add an entry on the wiki to give directions on how to enable/disable sensor support. Beyond that, suspend with sensors seems like a long-term issue.
Beyond that, suspend with sensors seems like a long-term issue.
Maybe we should instead ship a config to disable suspend by default? This was done in other devices, and given it has issues with remote processors in most Android device, this might be best? Enabling it is always a couple touches away?
That sounds like a good idea. I think we still need to remove the post-upgrade script, just so advanced users can keep working suspend (regressions aren't good) without having to keep disabling the service.
Now I'm curious about the underlying bug. Does dmesg report a different remoteproc crash (e.g. SLPI - Sensor Low Power Island) on the OnePlus 6?
The lack of a system-wide hang doesn't imply that there is no remoteproc crash. I tried adding CDSP and running HexagonRPCD on it, and CDSP crashed, but the device kept working.