Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 8df89080 authored by Jordan Crouse's avatar Jordan Crouse
Browse files

msm: kgsl: Refactor the GPU event engine



The old GPU event model was pretty heavy weight. It walked a lot
of issues while holding the mutex and was generally not very
flexible or scalable.

The new design introduces event groups. Event groups have a list of
common events with a local lock.  Each context has a default event
group and the device adds a few more for global events and IOMMU events.
Each event group is processed when timestamps expire and the expired
events are scheduled on a workqueue. We never need to take the device
mutex in any of the event code and we have the flexibility to deal with
both global and per-context timestamps in a reasonably generic manner.

Speed is a premimum at every step of the process, so we use RCUs for
the global group list, a new kmem cache for the event structs and
generally go out of our way to avoid blocking in rendering threads
even a little bit.

Change-Id: Ic0dedbad02eec7c75258e6787543b79d4b8b3394
Signed-off-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
parent b28426e9
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment