Skip to content

Commit 6830c8d

Browse files
committed
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
2 parents 580e3d5 + 3f5fe9f commit 6830c8d

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

Documentation/scheduler/sched-deadline.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,10 +204,17 @@ CONTENTS
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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,10 +473,10 @@ struct sched_dl_entity {
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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ static inline long __trace_sched_switch_state(bool preempt, struct task_struct *
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,
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

0 commit comments

Comments
 (0)