Looking at a recent run (https://luci-milo.appspot.com/buildbot/chromium.perf/Android%20Nexus5X%20Perf/17), it seems that no benchmarks where BattOrs were enabled actually collected any power measurements. This would be the case if the BattOrs were unplugged from the devices.
martiniss@, when we did the switchover to swarming, is it possible that something got messed up?
I"m not 100% sure on how the swarming for the perf android bots works, but I wonder if whatever isolates one phone from another on the host (docker I think?) is making it so that it cannot see the BattOr via USB. Ben, does that sound like a possibility?
Re #6: That's almost certainly the case here. I'll start looking into what it would take to whitelist a device's battor in the container as well, but it will most likely be a non-trivial change.
This is what we get from the log:
1)
(WARNING) 2017-05-09 07:02:27,199 battor_wrapper.IsBattOrConnected:40 Device tree:
2)
(ERROR) 2017-05-09 07:02:27,888 battor_wrapper.IsBattOrConnected:51 Error generating serial map
Traceback (most recent call last):
File "/b/swarming/w/ir/third_party/catapult/common/battor/battor/battor_wrapper.py", line 48, in IsBattOrConnected
android_device_map = battor_device_mapping.GenerateSerialMap()
File "/b/swarming/w/ir/third_party/catapult/devil/devil/utils/battor_device_mapping.py", line 206, in GenerateSerialMap
raise battor_error.BattOrError('Multiple phones on same port number')
BattOrError: Multiple phones on same port number
Ben, how do I see the system from the view of the docker instance? As stated above, this is probably because the BattOr devices are not isolated correctly. I dont think I can dig more into this and confirm that unless I know how to see what the docker instance sees.
If you want to poke around, you can hop onto one of the dockered bots (build{73..75}-b1) and follow the instructions in /b/README to open a bash shell in a container.
benhenry@ loaned me a battor'ed phone yesterday, and I'm looking into what it would take to whitelist battors the same way it does with phones. It should be possible, but like I said above, it won't be a trivial change. If the power measurements are a high priority, we might want to think about reverting the swarming conversion until I can get the containers to see the battors.
Cc: benhenry@chromium.org Owner: bpastene@chromium.org Status: Started (was: Assigned)
Chatted with Randy and Charlie earlier today. It was determined that we can live without the battor readings on these bots for a few days, especially considering the hight cost of converting/switching these over. Since I'm fairly confident I can get this resolved by sometime next week, we agreed to avoid the revert and keep the bots in swarming for now.
If something unseen comes up and I fall short of that deadline, then we'll probably want to revisit that decision. However, I know what needs to be done to fix this and have a clear path ahead, so I'm fairly confident we'll be able to close this out by next week.
I'll take this bug since most/all of the work will need to be done on the docker/infra side of things.
Barring any unforeseen issues, the docker containers should now support battors. I'll push all the recent changes to canary bots for a bit and see how things go. If it looks good, I'll deploy to prod where we'll hopefully start getting power measurements again.
Awesome! Please update the thread again when we should expect to see BattOrs working again in prod. Thanks so much for your continued work on this Ben.
Comment 1 by charliea@chromium.org
, May 8 2017