#2765 closed defect (fixed)

Application level deadlocks may lead to SMP lock level deadlocks

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: score Version: 4.11
Severity: critical Keywords:
Cc: Blocked By:


Due to a missing deadlock detection application level deadlocks may lead to SMP lock level deadlocks.

Change History (11)

comment:1 Changed on 07/25/16 at 12:18:48 by Sebastian Huber <sebastian.huber@…>

In 57a00bc6afd25f5c41006b386627d087ff9d4c66/rtems:

smptests/smpmutex02: New test

Update #2765.

comment:2 Changed on 07/25/16 at 12:20:41 by Sebastian Huber

Version: 4.104.11

comment:3 Changed on 07/27/16 at 08:56:15 by Sebastian Huber <sebastian.huber@…>

In f4d1f307926b6319e5d3b325dbe424901285dec1/rtems:

score: Split _Thread_Change_priority()

Update #2412.
Update #2556.
Update #2765.

comment:4 Changed on 07/27/16 at 08:56:26 by Sebastian Huber <sebastian.huber@…>

In ac8402ddd6e4a8eb6defb98220d39d4c20a6f025/rtems:

score: Simplify _Thread_queue_Boost_priority()

Raise the priority under thread queue lock protection and omit the
superfluous thread queue priority change, since the thread is extracted
anyway. The unblock operation will pick up the new priority.

Update #2412.
Update #2556.
Update #2765.

comment:5 Changed on 07/27/16 at 08:56:36 by Sebastian Huber <sebastian.huber@…>

In 3a58dc863157bb21054a144c1a21b690544c0d23/rtems:

score: Priority inherit thread queue operations

Move the priority change due to priority interitance to the thread queue
enqueue operation to simplify the locking on SMP configurations.

Update #2412.
Update #2556.
Update #2765.

comment:6 Changed on 07/27/16 at 08:56:46 by Sebastian Huber <sebastian.huber@…>

In 1fcac5adc5ed38fb88ce4c6d24b2ca2e27e3cd10/rtems:

score: Turn thread lock into thread wait lock

The _Thread_Lock_acquire() function had a potentially infinite run-time
due to the lack of fairness at atomic operations level.

Update #2412.
Update #2556.
Update #2765.

comment:7 Changed on 07/27/16 at 08:56:57 by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: newclosed

In d79df38c2bea50112214ade95776cb90d693e390/rtems:

score: Add deadlock detection

The mutex objects use the owner field of the thread queues for the mutex
owner. Use this and add a deadlock detection to
_Thread_queue_Enqueue_critical() for thread queues with an owner.

Update #2412.
Update #2556.
Close #2765.

comment:8 Changed on 05/11/17 at 07:31:02 by Sebastian Huber


comment:9 Changed on 10/10/17 at 06:27:10 by Sebastian Huber

Component: SMPscore

comment:10 Changed on 10/10/17 at 06:29:01 by Sebastian Huber

Component: scorecpukit

comment:11 Changed on 11/09/17 at 06:27:14 by Sebastian Huber


Milestone renamed

Note: See TracTickets for help on using tickets.