mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 11:30:53 +07:00
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
This commit is contained in:
commit
6830c8db58
@ -204,10 +204,17 @@ CONTENTS
|
|||||||
It does so by decrementing the runtime of the executing task Ti at a pace equal
|
It does so by decrementing the runtime of the executing task Ti at a pace equal
|
||||||
to
|
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),
|
where:
|
||||||
and Ui is the bandwidth of task Ti.
|
|
||||||
|
- 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
|
Let's now see a trivial example of two deadline tasks with runtime equal
|
||||||
|
@ -473,10 +473,10 @@ struct sched_dl_entity {
|
|||||||
* conditions between the inactive timer handler and the wakeup
|
* conditions between the inactive timer handler and the wakeup
|
||||||
* code.
|
* code.
|
||||||
*/
|
*/
|
||||||
int dl_throttled : 1;
|
unsigned int dl_throttled : 1;
|
||||||
int dl_boosted : 1;
|
unsigned int dl_boosted : 1;
|
||||||
int dl_yielded : 1;
|
unsigned int dl_yielded : 1;
|
||||||
int dl_non_contending : 1;
|
unsigned int dl_non_contending : 1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bandwidth enforcement timer. Each -deadline task has its
|
* Bandwidth enforcement timer. Each -deadline task has its
|
||||||
|
@ -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).
|
* RUNNING (we will not have dequeued if state != RUNNING).
|
||||||
*/
|
*/
|
||||||
if (preempt)
|
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 */
|
#endif /* CREATE_TRACE_POINTS */
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ TRACE_EVENT(sched_switch,
|
|||||||
{ 0x40, "P" }, { 0x80, "I" }) :
|
{ 0x40, "P" }, { 0x80, "I" }) :
|
||||||
"R",
|
"R",
|
||||||
|
|
||||||
__entry->prev_state & TASK_STATE_MAX ? "+" : "",
|
__entry->prev_state & TASK_REPORT_MAX ? "+" : "",
|
||||||
__entry->next_comm, __entry->next_pid, __entry->next_prio)
|
__entry->next_comm, __entry->next_pid, __entry->next_prio)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user