mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-15 11:47:47 +00:00
Merge branch 'for-6.14' into for-next
This commit is contained in:
commit
b93031164d
@ -242,9 +242,9 @@ The following briefly shows how a waking task is scheduled and executed.
|
||||
task was inserted directly from ``ops.select_cpu()``). ``ops.enqueue()``
|
||||
can make one of the following decisions:
|
||||
|
||||
* Immediately insert the task into either the global or local DSQ by
|
||||
calling ``scx_bpf_dsq_insert()`` with ``SCX_DSQ_GLOBAL`` or
|
||||
``SCX_DSQ_LOCAL``, respectively.
|
||||
* Immediately insert the task into either the global or a local DSQ by
|
||||
calling ``scx_bpf_dsq_insert()`` with one of the following options:
|
||||
``SCX_DSQ_GLOBAL``, ``SCX_DSQ_LOCAL``, or ``SCX_DSQ_LOCAL_ON | cpu``.
|
||||
|
||||
* Immediately insert the task into a custom DSQ by calling
|
||||
``scx_bpf_dsq_insert()`` with a DSQ ID which is smaller than 2^63.
|
||||
|
@ -3671,10 +3671,8 @@ void __scx_update_idle(struct rq *rq, bool idle)
|
||||
* idle_masks.smt handling is racy but that's fine as
|
||||
* it's only for optimization and self-correcting.
|
||||
*/
|
||||
for_each_cpu(cpu, smt) {
|
||||
if (!cpumask_test_cpu(cpu, idle_masks.cpu))
|
||||
return;
|
||||
}
|
||||
if (!cpumask_subset(smt, idle_masks.cpu))
|
||||
return;
|
||||
cpumask_or(idle_masks.smt, idle_masks.smt, smt);
|
||||
} else {
|
||||
cpumask_andnot(idle_masks.smt, idle_masks.smt, smt);
|
||||
@ -5220,9 +5218,9 @@ static void scx_dump_task(struct seq_buf *s, struct scx_dump_ctx *dctx,
|
||||
scx_get_task_state(p), p->scx.flags & ~SCX_TASK_STATE_MASK,
|
||||
p->scx.dsq_flags, ops_state & SCX_OPSS_STATE_MASK,
|
||||
ops_state >> SCX_OPSS_QSEQ_SHIFT);
|
||||
dump_line(s, " sticky/holding_cpu=%d/%d dsq_id=%s dsq_vtime=%llu",
|
||||
dump_line(s, " sticky/holding_cpu=%d/%d dsq_id=%s dsq_vtime=%llu slice=%llu",
|
||||
p->scx.sticky_cpu, p->scx.holding_cpu, dsq_id_buf,
|
||||
p->scx.dsq_vtime);
|
||||
p->scx.dsq_vtime, p->scx.slice);
|
||||
dump_line(s, " cpus=%*pb", cpumask_pr_args(p->cpus_ptr));
|
||||
|
||||
if (SCX_HAS_OP(dump_task)) {
|
||||
@ -6408,9 +6406,7 @@ __bpf_kfunc_start_defs();
|
||||
* ops.select_cpu(), and ops.dispatch().
|
||||
*
|
||||
* When called from ops.select_cpu() or ops.enqueue(), it's for direct dispatch
|
||||
* and @p must match the task being enqueued. Also, %SCX_DSQ_LOCAL_ON can't be
|
||||
* used to target the local DSQ of a CPU other than the enqueueing one. Use
|
||||
* ops.select_cpu() to be on the target CPU in the first place.
|
||||
* and @p must match the task being enqueued.
|
||||
*
|
||||
* When called from ops.select_cpu(), @enq_flags and @dsp_id are stored, and @p
|
||||
* will be directly inserted into the corresponding dispatch queue after
|
||||
|
Loading…
x
Reference in New Issue
Block a user