[5.2] Jolla Phone 2026 mtkfusionrild CPU usage

REPRODUCIBILITY: Always
OS VERSION: SFOS 5.2
HARDWARE: Jolla Phone 2026
UI LANGUAGE: Finnish
REGRESSION: Yes

DESCRIPTION:

Radio process mtkfusionrild keeps using considerable amount of CPU cycles regardless of radio firmware usage.

PRECONDITIONS:

Out of the box Jolla Phone 2026 updated to SFOS 5.2.0.15.

SIM card inserted and (automatically) configured into use. Device has been restarted at least once after configuration.

Only official Jolla repositories active. Android framework in disabled state from the boot.

STEPS TO REPRODUCE:

  1. Start the device from powered off state. (If already running, don’t use restart. Instead power off and then power on again.)

  2. Install htop: devel-supkcon install htop → run htop command

  3. Sort processes by their CPU time using shift-t

  4. Observe radio user’s CPU usage and time of process /vendor/bin/hw/mtkfusionrild -l libmtk-ril.so

  5. Put the phone into flight-mode. Again observe the CPU usage of the process.

EXPECTED RESULT:

The process should remain dormant when the flight mode has been enabled at minimum.
Equivalent process qcrild on Sony X10 III running SFOS remains mostly dormant in all situations.

ACTUAL RESULT:

Process mtkfusionrild remains active in all situations, constantly consuming CPU between 1 - 5 %.

MODIFICATIONS:

No modifications.

ADDITIONAL INFORMATION:

Probably safe to assume that the device cannot go into deep sleep when mtkfusionrild is running at this pace constantly.

This behavior has been reproduced at least on two separate J2 phones with three separate SIM cards.

WORKAROUND:

Update and workaround in 2026.7.28: I think this is a race condition between SFOS and radio firmware.

Enable Developer mode under SFOS Settings.

If not enabled, enable the option to show Restart button in the power button menu.

Longpress the power button and choose Restart icon in the menu (top right).

Restarting SFOS using this method does not reboot the radio firmware, which then prevents the race condition. It does not trigger again until you completely shut down the phone and power it back on manually.

11 Likes

Seems that this problem is a race condition between the operating system and radio firmware. Workaround added into the above bug report: Just restart the OS (and not the phone). Do not power off and power on; the full power cycle is what triggers the issue in the first place.

I had been using poweroff / power on cycle to troubleshoot for days. This confirms that the problem happens always after a full power cycle. I’m guessing that it also explains why the issue has gone unnoticed earlier; The devs are likely to more often just reboot/restart the devices and not to power them completely off.

4 Likes

Only got this after update to 5.2.0.16. Warm reboot does not fix it.

Thanks! I tested now as well, and on mine after 5.2.0.16 warm reboot still works to clear up the issue.

1 Like

I got the type where restart does not cut it today. I had been playing around with mobile network settings and had manually selected the network. The issue triggered and continued through the restart.

Then I chose automatic network selection and restarted again, after which the process CPU usage returned to normal levels.

There is also a constant 2-3% CPU usage by system interrupts, which is very high. This may or may not be related.

Comparing the /proc/interrupts counters over a minute, I see about 150000 interrupts from arch_timer and another 5000 interrupts from mtk_cmdq.

Furthermore, there is a lot of continuous dmesg spam. I’m not sure whether to open a separate thread for this. Here is a three second log fragment showing the repetitive messages:

авг 07 09:28:30 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:30 JollaPhone2026 kernel: [DISP]before esd check 0xc=0x800c0710 0xc4=0xf073a
авг 07 09:28:30 JollaPhone2026 kernel: [DISP]after esd check 0xc=0x800f071a 0xc4=0xf073a
авг 07 09:28:30 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:31 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:31 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:31 JollaPhone2026 kernel: board_ntc_get_temp: 2 callbacks suppressed
авг 07 09:28:31 JollaPhone2026 kernel: mtk-board-ntc 1c013128.thermal-ntc1: val=0xad59, v_in/r_type/r_ntc/t=65187/0/54865/38185
авг 07 09:28:31 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:31 JollaPhone2026 kernel: rt6160 5-0075: rt6160_polling_error_func flags = 0
авг 07 09:28:31 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:32 JollaPhone2026 kernel: core_ctl: en=0 max=4|4|0 min=4|0|0 need=4|4|0 bst=0|0|0 gas=0 act=ff iso=0 f_iso=0
авг 07 09:28:32 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:32 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:32 JollaPhone2026 kernel: mtk-board-ntc 1c013128.thermal-ntc1: val=0xad5c, v_in/r_type/r_ntc/t=65204/0/54887/38176
авг 07 09:28:32 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:32 JollaPhone2026 kernel: [DISP]before esd check 0xc=0x800f071a 0xc4=0xf073a
авг 07 09:28:32 JollaPhone2026 kernel: [DISP]after esd check 0xc=0x800f071a 0xc4=0xf073a
авг 07 09:28:32 JollaPhone2026 kernel: timesync boot 372700245942 sched 372705584041 android 08-07 06:28:32.700214
авг 07 09:28:32 JollaPhone2026 kernel: regulator_vibrator vibr_enable(101) :vibr enable
авг 07 09:28:32 JollaPhone2026 kernel: regulator_vibrator vibr_disable(115) :vibr disable
авг 07 09:28:32 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:32 JollaPhone2026 kernel: [wdtk] kick watchdog
авг 07 09:28:33 JollaPhone2026 kernel: regulator_vibrator vibr_enable(101) :vibr enable
авг 07 09:28:33 JollaPhone2026 kernel: yft_pogo_pin_int_state_show yft_pogo_pin_eint_state:0
авг 07 09:28:33 JollaPhone2026 kernel: regulator_vibrator vibr_disable(115) :vibr disable
авг 07 09:28:33 JollaPhone2026 kernel: mtk-board-ntc 1c013130.thermal-ntc3: val=0xb12b, v_in/r_type/r_ntc/t=70678/0/62369/35289
авг 07 09:28:33 JollaPhone2026 kernel: mtk-board-ntc 1c01312c.thermal-ntc2: val=0xb14e, v_in/r_type/r_ntc/t=70875/0/62651/35187
1 Like