diff options
Diffstat (limited to 'testsuites/sptests/sp36/sp36.doc')
-rw-r--r-- | testsuites/sptests/sp36/sp36.doc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/testsuites/sptests/sp36/sp36.doc b/testsuites/sptests/sp36/sp36.doc new file mode 100644 index 0000000000..d67943b93a --- /dev/null +++ b/testsuites/sptests/sp36/sp36.doc @@ -0,0 +1,42 @@ +This is a simple test program to demonstrate strict order mutex. + +1)What's strict order mutex ? + + In rtems,when a task release a priority_inheritance or + priority ceiling semaphore,the kernel detect whether + this task holds priority_inheritance or priority + ceiling semaphore, if not, set the priority of task + back to real priority of task. + This method is right, but in theory, we would like + to reset the priority after releasing the mutex if + releasing it in LIFO order.Do it like this can decrease + the blocking time of a higher priority task . + +2)How to enable "strict order mutex " ? + + When configuring the rtems , add + ENABLE_STRICT_ORDER_MUTEX=1 + to your configure parameter. + + +3)About this test program + + T0,T1,S0,S1 + + T0,priority 4 + T1,priority 1 + + S0,priority inheritance + S1,priority ceiling,priority ceiling 1 + + 1,T0 obtain S0 then obtain S1, priority of T0 should be improved to 1 + 2,T0 try to release S0, but not in strict order, return error code + 3,T0 release S1,the priority of T0 back to 4 + 4,T1 try to obtain S0 + 5,T1 should be blocked and the priority of T0 should be improved to 1 + 6,T0 release S0 + 7,T1 obtain S0 + 8,OVER. + + + |