Qutex: Deprecate old gridlock trace; add skeleton new trace
We add the skeleton of a correct history tracer for gridlocks. The previous history tracer made the incorrect assumption that we would find the foreign sequence's currently desired LockSet inside of the lockvoker that it has stored inside of Qutex::currOwner.
This commit is contained in:
@@ -116,7 +116,7 @@ public:
|
||||
bool isDeadlock = traceContinuationHistoryForDeadlockOn(
|
||||
firstFailedQutex);
|
||||
|
||||
bool isGridlock = traceContinuationHistoryForGridlockOn(
|
||||
bool isGridlock = heuristicallyTraceContinuationHistoryForGridlockOn(
|
||||
firstFailedQutex);
|
||||
|
||||
if (!isDeadlock && !isGridlock)
|
||||
@@ -222,8 +222,15 @@ public:
|
||||
{ return isDeadlockLikely(); }
|
||||
|
||||
#ifdef CONFIG_ENABLE_DEBUG_LOCKS
|
||||
struct obsolete {
|
||||
bool traceContinuationHistoryForGridlockOn(Qutex &firstFailedQutex);
|
||||
};
|
||||
|
||||
bool traceContinuationHistoryForDeadlockOn(Qutex &firstFailedQutex);
|
||||
bool traceContinuationHistoryForGridlockOn(Qutex &firstFailedQutex);
|
||||
bool heuristicallyTraceContinuationHistoryForGridlockOn(
|
||||
Qutex &firstFailedQutex);
|
||||
bool completelyTraceContinuationHistoryForGridlockOn(
|
||||
Qutex &firstFailedQutex);
|
||||
bool traceContinuationHistoryForDeadlock(void)
|
||||
{
|
||||
for (auto& lockUsageDesc
|
||||
|
||||
Reference in New Issue
Block a user