#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:
Blocking:

Description

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

Change History (11)

comment:1 Changed on Jul 25, 2016 at 12:18:48 PM by Sebastian Huber <sebastian.huber@…>

In 57a00bc6afd25f5c41006b386627d087ff9d4c66/rtems:

smptests/smpmutex02: New test

Update #2765.

comment:2 Changed on Jul 25, 2016 at 12:20:41 PM by Sebastian Huber

Version: 4.104.11

comment:3 Changed on Jul 27, 2016 at 8:56:15 AM by Sebastian Huber <sebastian.huber@…>

In f4d1f307926b6319e5d3b325dbe424901285dec1/rtems:

score: Split _Thread_Change_priority()

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

comment:4 Changed on Jul 27, 2016 at 8:56:26 AM 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 Jul 27, 2016 at 8:56:36 AM 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 Jul 27, 2016 at 8:56:46 AM 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 Jul 27, 2016 at 8:56:57 AM 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 May 11, 2017 at 7:31:02 AM by Sebastian Huber

Milestone: 4.124.12.0

comment:9 Changed on Oct 10, 2017 at 6:27:10 AM by Sebastian Huber

Component: SMPscore

comment:10 Changed on Oct 10, 2017 at 6:29:01 AM by Sebastian Huber

Component: scorecpukit

comment:11 Changed on Nov 9, 2017 at 6:27:14 AM by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

Note: See TracTickets for help on using tickets.