Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6830c8db authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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
parents 580e3d55 3f5fe9fe
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -204,10 +204,17 @@ CONTENTS
 It does so by decrementing the runtime of the executing task Ti at a pace equal
 to

           dq = -max{ Ui, (1 - Uinact) } dt
           dq = -max{ Ui / Umax, (1 - Uinact - Uextra) } dt

 where Uinact is the inactive utilization, computed as (this_bq - running_bw),
 and Ui is the bandwidth of task Ti.
 where:

  - Ui is the bandwidth of task Ti;
  - Umax is the maximum reclaimable utilization (subjected to RT throttling
    limits);
  - Uinact is the (per runqueue) inactive utilization, computed as
    (this_bq - running_bw);
  - Uextra is the (per runqueue) extra reclaimable utilization
    (subjected to RT throttling limits).


 Let's now see a trivial example of two deadline tasks with runtime equal
+4 −4
Original line number Diff line number Diff line
@@ -473,10 +473,10 @@ struct sched_dl_entity {
	 * conditions between the inactive timer handler and the wakeup
	 * code.
	 */
	int				dl_throttled      : 1;
	int				dl_boosted        : 1;
	int				dl_yielded        : 1;
	int				dl_non_contending : 1;
	unsigned int			dl_throttled      : 1;
	unsigned int			dl_boosted        : 1;
	unsigned int			dl_yielded        : 1;
	unsigned int			dl_non_contending : 1;

	/*
	 * Bandwidth enforcement timer. Each -deadline task has its
+3 −3
Original line number Diff line number Diff line
@@ -116,9 +116,9 @@ static inline long __trace_sched_switch_state(bool preempt, struct task_struct *
	 * RUNNING (we will not have dequeued if state != RUNNING).
	 */
	if (preempt)
		return TASK_STATE_MAX;
		return TASK_REPORT_MAX;

	return task_state_index(p);
	return 1 << task_state_index(p);
}
#endif /* CREATE_TRACE_POINTS */

@@ -164,7 +164,7 @@ TRACE_EVENT(sched_switch,
				{ 0x40, "P" }, { 0x80, "I" }) :
		  "R",

		__entry->prev_state & TASK_STATE_MAX ? "+" : "",
		__entry->prev_state & TASK_REPORT_MAX ? "+" : "",
		__entry->next_comm, __entry->next_pid, __entry->next_prio)
);