History

Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fixes from Ingo Molnar: "Misc fixes: a documentation fix, a Sparse warning fix and a debugging fix" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/debug: Fix task state recording/printout sched/deadline: Don't use dubious signed bitfields sched/deadline: Fix the description of runtime accounting in the documentation

Linus Torvalds committed 8 years ago

Commit 6830c8d2 parents 580e3d5 3f5fe9f3 files · +17 −10Browse files

Unified · Split

3 files
  1. Documentation/scheduler/sched-deadline.txt +10 −3
  2. include/linux/sched.h +4 −4
  3. include/trace/events/sched.h +3 −3
Documentation/scheduler/sched-deadline.txt+10−3
@@ -204,10 +204,17 @@ CONTENTS · 203 unmodified lines
204204 It does so by decrementing the runtime of the executing task Ti at a pace equal
205205 to
206206
207− dq = -max{ Ui, (1 - Uinact) } dt
207+ dq = -max{ Ui / Umax, (1 - Uinact - Uextra) } dt
208208
209− where Uinact is the inactive utilization, computed as (this_bq - running_bw),
210− and Ui is the bandwidth of task Ti.
209+ where:
210+
211+ - Ui is the bandwidth of task Ti;
212+ - Umax is the maximum reclaimable utilization (subjected to RT throttling
213+ limits);
214+ - Uinact is the (per runqueue) inactive utilization, computed as
215+ (this_bq - running_bw);
216+ - Uextra is the (per runqueue) extra reclaimable utilization
217+ (subjected to RT throttling limits).
211218
212219
213220 Let's now see a trivial example of two deadline tasks with runtime equal
include/linux/sched.h+4−4
@@ -473,10 +473,10 @@ struct sched_dl_entity { · 472 unmodified lines
473473 * conditions between the inactive timer handler and the wakeup
474474 * code.
475475 */
476− int dl_throttled : 1;
477− int dl_boosted : 1;
478− int dl_yielded : 1;
479− int dl_non_contending : 1;
476+ unsigned int dl_throttled : 1;
477+ unsigned int dl_boosted : 1;
478+ unsigned int dl_yielded : 1;
479+ unsigned int dl_non_contending : 1;
480480
481481 /*
482482 * Bandwidth enforcement timer. Each -deadline task has its
include/trace/events/sched.h+3−3
@@ -116,9 +116,9 @@ static inline long __trace_sched_switch_state(bool preempt, struct task_struct * · 115 unmodified lines
116116 * RUNNING (we will not have dequeued if state != RUNNING).
117117 */
118118 if (preempt)
119− return TASK_STATE_MAX;
119+ return TASK_REPORT_MAX;
120120
121− return task_state_index(p);
121+ return 1 << task_state_index(p);
122122 }
123123 #endif /* CREATE_TRACE_POINTS */
124124
@@ -164,7 +164,7 @@ TRACE_EVENT(sched_switch, · 39 unmodified lines
164164 { 0x40, "P" }, { 0x80, "I" }) :
165165 "R",
166166
167− __entry->prev_state & TASK_STATE_MAX ? "+" : "",
167+ __entry->prev_state & TASK_REPORT_MAX ? "+" : "",
168168 __entry->next_comm, __entry->next_pid, __entry->next_prio)
169169 );
170170