- /* For framebuffer backed by dmabuf, wait for fence */
- mutex_lock(&dev->object_name_lock);
The lock here is unfortunate. I thought once a dmabuf as attached to an object, it persists until the object is destroyed, so afaict the lock here is unnecessary (as it only protects against a userspace race in attaching a dmabuf).
You're probably right. I'll send out a v3 patch set with the lock removed if there are no other comments.
- if (pending_flip_obj->base.dma_buf) {
reservation_object_wait_timeout_rcu(
Side-question, are these fences exclusive or do we track read/write?
They are exclusive, with the sink X driver using vblank events to explicitly request the source X driver to write. If you guys want to track read/write I could switch over to shared fences, but for my use case only exclusive fences are necessary.
Thanks, Alex