[PATCH 00/11] 4.10 Fix Priority Inheritance Protocol
Gedare Bloom
gedare at rtems.org
Fri Mar 23 16:15:36 UTC 2018
This patch series fixes the PIP as described in #3361 to allow
for proper step-down of priority under:
vertical nesting
horizontal nesting
lock timeouts, and
lock flushing.
A few commits backport tests from 4.11 and 5 (master)
to the 4.10 branch to demonstrate the broken behavior of PIP.
The last two commits are the fix to PIP. Test results without the last
two commits using rtems-test:
Passed: 222
Failed: 6
Timeouts: 22
Invalid: 0
-------------
Total: 250
Failures:
spmutex01.exe
spsem04.exe
spfatal09.exe
spsem03.exe
psx04.exe
spintrcritical09.exe
Test results with the last two commits:
Passed: 225
Failed: 3
Timeouts: 22
Invalid: 0
-------------
Total: 250
Failures:
spfatal09.exe
psx04.exe
spintrcritical09.exe
No new failures or timeouts compared to baseline.
Synopsis below.
Gedare Bloom (7):
sptests: back-port spsem01, spsem02, and spsem03 from 4.11
sptests/spsem04: test prio stepdown on sem release
sptests/spsem05: another test of prio stepdown on sem release
sptests/spmutex01: strip out deadlock, c11, posix
sptests: Add spmutex01 to build
score: replace current and real priority with priority node
score: add Inherited_priorities priority queue and functions
Sebastian Huber (4):
score: Test thread priority queue disciplines
sptests/spmutex01: refactor and add deadlock test
sptests/spmutex01: add tests for lock nesting
sptests/spmutex01: test flush with inherit prio
cpukit/itron/src/chg_pri.c | 4 +-
cpukit/itron/src/ref_tsk.c | 2 +-
cpukit/itron/src/rot_rdq.c | 2 +-
cpukit/libmisc/capture/capture.c | 8 +-
cpukit/libmisc/capture/capture.h | 4 +-
cpukit/libmisc/monitor/mon-task.c | 2 +-
cpukit/posix/src/killinfo.c | 12 +-
cpukit/posix/src/pthread.c | 14 +-
cpukit/posix/src/pthreadgetschedparam.c | 2 +-
cpukit/posix/src/pthreadsetschedparam.c | 4 +-
cpukit/rtems/src/tasksetpriority.c | 8 +-
cpukit/score/Makefile.am | 3 +-
cpukit/score/include/rtems/score/coremutex.h | 2 +-
cpukit/score/include/rtems/score/thread.h | 82 ++++-
cpukit/score/inline/rtems/score/coremutex.inl | 4 +-
cpukit/score/src/coremutex.c | 4 +-
cpukit/score/src/coremutexseize.c | 9 +-
cpukit/score/src/coremutexsurrender.c | 18 +-
cpukit/score/src/mpci.c | 2 +-
cpukit/score/src/threadchangepriority.c | 6 +-
cpukit/score/src/threadclearstate.c | 4 +-
cpukit/score/src/threadinitialize.c | 6 +-
cpukit/score/src/threadmp.c | 2 +-
cpukit/score/src/threadprioritynode.c | 167 +++++++++
cpukit/score/src/threadqenqueuepriority.c | 10 +-
cpukit/score/src/threadqextractpriority.c | 5 +
cpukit/score/src/threadqflush.c | 6 +
cpukit/score/src/threadreset.c | 20 +-
cpukit/score/src/threadresume.c | 4 +-
cpukit/score/src/threadsetpriority.c | 2 +-
testsuites/sptests/Makefile.am | 2 +
testsuites/sptests/configure.ac | 6 +
testsuites/sptests/sp34/changepri.c | 4 +-
testsuites/sptests/sp35/priinv.c | 17 +-
testsuites/sptests/spmutex01/Makefile.am | 19 +
testsuites/sptests/spmutex01/init.c | 495 ++++++++++++++++++++++++++
testsuites/sptests/spmutex01/spmutex01.doc | 16 +
testsuites/sptests/spmutex01/spmutex01.scn | 2 +
testsuites/sptests/spsem01/Makefile.am | 21 ++
testsuites/sptests/spsem01/init.c | 156 ++++++++
testsuites/sptests/spsem01/spsem01.doc | 19 +
testsuites/sptests/spsem01/spsem01.scn | 15 +
testsuites/sptests/spsem02/Makefile.am | 21 ++
testsuites/sptests/spsem02/init.c | 192 ++++++++++
testsuites/sptests/spsem02/spsem02.doc | 23 ++
testsuites/sptests/spsem02/spsem02.scn | 21 ++
testsuites/sptests/spsem03/Makefile.am | 19 +
testsuites/sptests/spsem03/init.c | 155 ++++++++
testsuites/sptests/spsem03/spsem03.doc | 12 +
testsuites/sptests/spsem03/spsem03.scn | 2 +
testsuites/sptests/spsem04/Makefile.am | 19 +
testsuites/sptests/spsem04/init.c | 149 ++++++++
testsuites/sptests/spsem04/spsem04.doc | 13 +
testsuites/sptests/spsem04/spsem04.scn | 2 +
testsuites/sptests/spsem05/Makefile.am | 19 +
testsuites/sptests/spsem05/init.c | 165 +++++++++
testsuites/sptests/spsem05/spsem05.doc | 13 +
testsuites/sptests/spsem05/spsem05.scn | 2 +
58 files changed, 1929 insertions(+), 88 deletions(-)
create mode 100644 cpukit/score/src/threadprioritynode.c
create mode 100644 testsuites/sptests/spmutex01/Makefile.am
create mode 100644 testsuites/sptests/spmutex01/init.c
create mode 100644 testsuites/sptests/spmutex01/spmutex01.doc
create mode 100644 testsuites/sptests/spmutex01/spmutex01.scn
create mode 100644 testsuites/sptests/spsem01/Makefile.am
create mode 100644 testsuites/sptests/spsem01/init.c
create mode 100644 testsuites/sptests/spsem01/spsem01.doc
create mode 100644 testsuites/sptests/spsem01/spsem01.scn
create mode 100644 testsuites/sptests/spsem02/Makefile.am
create mode 100644 testsuites/sptests/spsem02/init.c
create mode 100644 testsuites/sptests/spsem02/spsem02.doc
create mode 100644 testsuites/sptests/spsem02/spsem02.scn
create mode 100644 testsuites/sptests/spsem03/Makefile.am
create mode 100644 testsuites/sptests/spsem03/init.c
create mode 100644 testsuites/sptests/spsem03/spsem03.doc
create mode 100644 testsuites/sptests/spsem03/spsem03.scn
create mode 100644 testsuites/sptests/spsem04/Makefile.am
create mode 100644 testsuites/sptests/spsem04/init.c
create mode 100644 testsuites/sptests/spsem04/spsem04.doc
create mode 100644 testsuites/sptests/spsem04/spsem04.scn
create mode 100644 testsuites/sptests/spsem05/Makefile.am
create mode 100644 testsuites/sptests/spsem05/init.c
create mode 100644 testsuites/sptests/spsem05/spsem05.doc
create mode 100644 testsuites/sptests/spsem05/spsem05.scn
--
2.7.4
More information about the devel
mailing list