Doing this instead of using the current (user) priority, which includes
current lendings, prevents gratuitous failures for threads involved in
multiple locking groups, where each group is defined as the threads that
can lock a particular PP or PI mutex. No deadlock can occur in this
case. Indeed, if a thread holds such a lock A giving it a higher
priority than the ceiling of some other lock B that is PP, and B is
acquired by another thread, effectively the latter may not be able to
run but this situation can only last until the first thread releases A,
which it will do eventually.
Details
Details
- Reviewers
kib - Commits
- rG8bd89740cb2b: PP mutexes: lock: Check if priority is too high against base one
rGf5a145cb0a5f: PP mutexes: lock: Check if priority is too high against base one
rGf9e9c02241dc: PP mutexes: lock: Check if priority is too high against base one
rG9ac3ac9ece62: PP mutexes: lock: Check if priority is too high against base one
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 56187 Build 53075: arc lint + arc unit