aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-09-17 19:42:28 -0400
committerGlenn Elliott <gelliott@cs.unc.edu>2012-09-17 19:42:28 -0400
commit50ff4903cc0503d2ee9d17c80580e8a91f59cc10 (patch)
treecda68e398fdb180cf03ac18211841774e0f73efe
parentd9b5000b74bbc468624f877495443b33f9511922 (diff)
Description of refined aux task inheritance.wip-aux-tasks
-rw-r--r--litmus/Kconfig19
1 files changed, 14 insertions, 5 deletions
diff --git a/litmus/Kconfig b/litmus/Kconfig
index c5dbc4a176ae..260b3af071c2 100644
--- a/litmus/Kconfig
+++ b/litmus/Kconfig
@@ -41,11 +41,12 @@ config REALTIME_AUX_TASKS
41 help 41 help
42 Adds a system call that forces all non-real-time threads in a process 42 Adds a system call that forces all non-real-time threads in a process
43 to become auxillary real-time tasks. These tasks inherit the priority of 43 to become auxillary real-time tasks. These tasks inherit the priority of
44 the highest-prio *BLOCKED* real-time task (non-auxillary) in the process. 44 the highest-prio *BLOCKED* (but NOT blocked on a Litmus lock) real-time
45 This allows the integration of COTS code that has background helper threads 45 task (non-auxillary) in the process. This allows the integration of COTS
46 used primarily for message passing and synchronization. If these 46 code that has background helper threads used primarily for message passing
47 background threads are NOT real-time scheduled, then unbounded priority 47 and synchronization. If these background threads are NOT real-time scheduled,
48 inversions may occur if a real-time task blocks on a non-real-time thread. 48 then unbounded priority inversions may occur if a real-time task blocks on
49 a non-real-time thread.
49 50
50 Beware of the following pitfalls: 51 Beware of the following pitfalls:
51 1) Auxillary threads should not be CPU intensive. They should mostly 52 1) Auxillary threads should not be CPU intensive. They should mostly
@@ -65,6 +66,14 @@ config REALTIME_AUX_TASKS
65 work.). Futher, auxillary tasks without an inherited priority are 66 work.). Futher, auxillary tasks without an inherited priority are
66 _always_ scheduled with a priority less than any normal real-time task!! 67 _always_ scheduled with a priority less than any normal real-time task!!
67 68
69 NOTE: Aux tasks do not _directly_ inherit a priority from rt tasks that
70 are blocked on Litmus locks. Aux task should be COTS code that know nothing
71 of Litmus, so they won't hold Litmus locks. Nothing the aux task can do can
72 _directly_ unblock the rt task blocked on a Litmus lock. However, the lock
73 holder that blocks the rt task CAN block on I/O and contribute its priority
74 to the aux tasks. Aux tasks may still _indirectly_ inherit the priority of
75 the blocked rt task via the lock holder.
76
68endmenu 77endmenu
69 78
70menu "Real-Time Synchronization" 79menu "Real-Time Synchronization"