aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
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:43:45 -0400
commit33cb64c787070d6b60a02ea40064d717d3b9dc07 (patch)
tree11c07b523c17dfd0787e7766ad8a026afd03ec96 /litmus
parentba54b1096870fba6e3bbb99aafc713e76b747353 (diff)
Description of refined aux task inheritance.
Diffstat (limited to 'litmus')
-rw-r--r--litmus/Kconfig19
1 files changed, 14 insertions, 5 deletions
diff --git a/litmus/Kconfig b/litmus/Kconfig
index b28fe2c09acd..a32f42898148 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"