On Thu, Jun 29, 2017 at 12:01:34PM -0700, Todd Kjos wrote: > The binder driver uses a global mutex to serialize access to state in a > multi-threaded environment. This global lock has been increasingly > problematic as Android devices have scaled to more cores. The problem is > not so much contention for the global lock which still remains relatively > low, but the priority inversion which occurs regularly when a lower > priority thread is preempted while holding the lock and a higher priority > thread becomes blocked on it. These cases can be especially painful if the > lower priority thread runs in the background on a slow core at a low > frequency. This often manifests as missed frames or other glitches. > > For several years, a hacky solution has been used in many Android devices > which disables preemption for most of the time the global mutex is held. > This dramatically decreased the cases of glitches induced by priority > inversion and increased the average throughput for binder transactions. > > Moving to fine-grained locking in this patchset results is a cleaner > and more scalable solution than the preempt disable hack. Priority > inversion is decreased significantly.
Yeah, it is great to see this work done! I'll review these on Monday, sorry, am traveling at the moment... thanks, greg k-h _______________________________________________ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel