rild/ofono have really high % cpu once 3g is turned off
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
touch-preview-images |
Fix Released
|
Critical
|
Tony Espy |
Bug Description
From a virgin install of 20130724 if I enable 3g and then disable it the rild/ofono cpu usage is in the 20-30% each.
Steps:
1 Connect a Maguro device to a pc
2 Open a terminal
3 Run phablet-flash --pending --wipe
4 Run adb root && adb shell
5 Run top (screenshot1)
6 On the phone open NM indicator and enable 3g
7 On the phone open the webbrowser ensure 3g is working
8 On the computer Run top with 3g enabled (screenshot2)
9 Disable the 3g on the phone
10 On the computer Run top (screenshot3)
Root Cause:
This is caused by a tight loop between ofono and RILD. I made an incorrect assumption that our NM/ofono code would deactivate the data context when mobile data is disabled. In reality it actually sets the 'Powered' property of org.ofono.
So when the core ofono code calls the gprs_driver set_attached function with attached=0, it merely results in a REQUEST_
Related branches
- Ricardo Salveti (community): Approve
- PS Jenkins bot: Approve (continuous-integration)
-
Diff: 110 lines (+37/-9)2 files modifieddebian/changelog (+8/-0)
drivers/rilmodem/gprs.c (+29/-9)
affects: | ofono → touch-preview-images |
Changed in touch-preview-images: | |
assignee: | nobody → Tony Espy (awe) |
description: | updated |
Changed in touch-preview-images: | |
status: | New → Confirmed |
importance: | Undecided → Critical |
description: | updated |
Changed in touch-preview-images: | |
status: | Confirmed → Fix Committed |
Changed in touch-preview-images: | |
status: | Fix Committed → Fix Released |
So it seems there's definitely some funny business happening on maguro.
I've discovered that while the Wi-Fi toggles do indeed seem to trigger NM actions, and persist after reboots, NM doesn't correctly report the properties.
If you run the following dbus-send command after disabling one or both network types, the values of the associated properties are not shown as disabled.
dbus-send --system --print-reply --dest= org.freedesktop .NetworkManager /org/free NetworkManager org.freedesktop .DBus.Propertie s.GetAll string:"org.freede nager"
desktop/
sktop.NetworkMa
method return sender=:1.22 -> dest=:1.39 reply_serial=2 reEnabled" abled"
array [
dict entry(
string "NetworkingEnabled"
variant boolean true
)
dict entry(
string "WirelessEnabled"
variant boolean true
)
dict entry(
string "WirelessHardwa
variant boolean true
)
dict entry(
string "WwanEnabled"
variant boolean true
)
dict entry(
string "WwanHardwareEn
variant boolean true
)
This only seems to happen on maguro. The same scenario on Mako seems to work.