A ww transaction utility intended to help removing the obj->mm.lock from the driver and introduce ww transactions in a robust way. Patch 1/2 breaks the current i915 utilities out to separate files Patch 2/2 introduces the ww transaction utility A similar utility could easily be introduced in the core ww_mutex code, allowing even for cross-driver ww transactions, and the template argument could then allow for per-ww-class derived ww_acquire_mutex types. To facilitate a core implementation, (since we can never guarantee the contended lock stays alive), we'd need a void ww_mutex_relax(struct ww_acquire_ctx *) and its interruptible variant that does the equivalent of locking and unlocking the contended mutex. With this driver implementation, we can extend the code to take a reference on the object containing the contended lock to make sure it stays alive. Finally, the drawback of the current implementation is the use of the hash table and corresponding performance cost, but as mentioned in patch 2, a core variant could probably do this in a much more efficient way. _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx