summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/sp36/sp36.doc
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/sptests/sp36/sp36.doc')
-rw-r--r--testsuites/sptests/sp36/sp36.doc42
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.
+
+
+