+26
−7
Loading
Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more
We've seen USB writes failing due to inability to allocate contiguous chunks of memory in the kernel on devices, but it looks like the same problem can occur on the host, as well. It's a mild performance regression (90->80 MB/s on a blueline) to split the writes always, so attempt the full write first, and fall back to splitting it up if that fails with ENOMEM. Once we switch over the the asynchronous transport API, we'll be able to submit multiple writes cheaply, like on devices, so we won't need to retry at that point. Bug: http://b/140985544 Test: test_device.py Change-Id: I1517c348375b829dfff6796c4e9d394802b02d5b