1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
menu "LITMUS^RT"
menu "Scheduling"
config PLUGIN_CEDF
bool "Clustered-EDF"
depends on X86 && SYSFS
default y
help
Include the Clustered EDF (C-EDF) plugin in the kernel.
This is appropriate for large platforms with shared caches.
On smaller platforms (e.g., ARM PB11MPCore), using C-EDF
makes little sense since there aren't any shared caches.
config PLUGIN_PFAIR
bool "PFAIR"
depends on HIGH_RES_TIMERS && !NO_HZ
default y
help
Include the PFAIR plugin (i.e., the PD^2 scheduler) in the kernel.
The PFAIR plugin requires high resolution timers (for staggered quanta)
and does not support NO_HZ (quanta could be missed when the system is idle).
If unsure, say Yes.
config PLUGIN_EDZL
bool "EDZL"
depends on X86 && SYSFS
default y
help
Include the EDZL (Earliest Deadline, Zero Laxity) plugin in the kernel.
EDZL functions like G-EDF, except jobs with zero laxity are given maximum
priority.
if unsure, say Yes.
config RELEASE_MASTER
bool "Release-master Support"
depends on ARCH_HAS_SEND_PULL_TIMERS
default n
help
Allow one processor to act as a dedicated interrupt processor
that services all timer interrupts, but that does not schedule
real-time tasks. See RTSS'09 paper for details
(http://www.cs.unc.edu/~anderson/papers.html).
Currently only supported by GSN-EDF.
endmenu
menu "Real-Time Synchronization"
config NP_SECTION
bool "Non-preemptive section support"
default n
help
Allow tasks to become non-preemptable.
Note that plugins still need to explicitly support non-preemptivity.
Currently, only GSN-EDF and PSN-EDF have such support.
This is required to support the FMLP.
If disabled, all tasks will be considered preemptable at all times.
config SRP
bool "Stack Resource Policy (SRP)"
default n
help
Include support for Baker's Stack Resource Policy.
Say Yes if you want FMLP local long critical section
synchronization support.
config FMLP
bool "FMLP support"
depends on NP_SECTION
default n
help
Include support for deterministic multiprocessor real-time
synchronization support.
Say Yes if you want FMLP long critical section
synchronization support.
endmenu
menu "Tracing"
config FEATHER_TRACE
bool "Feather-Trace Infrastructure"
default y
help
Feather-Trace basic tracing infrastructure. Includes device file
driver and instrumentation point support.
There are actually two implementations of Feather-Trace.
1) A slower, but portable, default implementation.
2) Architecture-specific implementations that rewrite kernel .text at runtime.
If enabled, Feather-Trace will be based on 2) if available (currently only for x86).
However, if DEBUG_RODATA=y, then Feather-Trace will choose option 1) in any case
to avoid problems with write-protected .text pages.
Bottom line: to avoid increased overheads, choose DEBUG_RODATA=n.
Note that this option only enables the basic Feather-Trace infrastructure;
you still need to enable SCHED_TASK_TRACE and/or SCHED_OVERHEAD_TRACE to
actually enable any events.
config SCHED_TASK_TRACE
bool "Trace real-time tasks"
depends on FEATHER_TRACE
default y
help
Include support for the sched_trace_XXX() tracing functions. This
allows the collection of real-time task events such as job
completions, job releases, early completions, etc. This results in a
small overhead in the scheduling code. Disable if the overhead is not
acceptable (e.g., benchmarking).
Say Yes for debugging.
Say No for overhead tracing.
config SCHED_OVERHEAD_TRACE
bool "Record timestamps for overhead measurements"
depends on FEATHER_TRACE
default n
help
Export event stream for overhead tracing.
Say Yes for overhead tracing.
config SCHED_DEBUG_TRACE
bool "TRACE() debugging"
default y
help
Include support for sched_trace_log_messageg(), which is used to
implement TRACE(). If disabled, no TRACE() messages will be included
in the kernel, and no overheads due to debugging statements will be
incurred by the scheduler. Disable if the overhead is not acceptable
(e.g. benchmarking).
Say Yes for debugging.
Say No for overhead tracing.
endmenu
endmenu
|