On Mon, 21 Nov 2022, Dan Williams wrote:
The mutex will attempt to maintain fairness in its own waitqueue. If the current task in exec_task() sees PCI_DOE_FLAG_CANCEL, it will drop out and release the lock and then all waiters can check PCI_DOE_FLAG_CANCEL before exec_task().
Yes, and try-locking is hacky by nature. In addition, relying on the mutex queuing will often be more optimal as it tries to avoid blocking altogether via mcs (which is also cacheline friendly). Thanks, Davidlohr