[PATCH 00/11] 4.10 Fix Priority Inheritance Protocol

Gedare Bloom gedare at rtems.org
Fri Mar 23 16:45:50 UTC 2018


Hello all,

In terms of prioritizing any code review, I think that mainly the new
code is in patches 02, 03 (two new test cases), and 10, 11 (the fix).
The other commits are back-porting existing test cases from 4.11 or
master into 4.10, and deleting any test code that is not relevant to
4.10 requirements.

Gedare

On Fri, Mar 23, 2018 at 12:15 PM, Gedare Bloom <gedare at rtems.org> wrote:
> 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