mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
Merge branch 'for-7.1-fixes' into for-7.2
Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
commit
c2929bc21d
|
|
@ -1424,13 +1424,13 @@ static void call_task_dequeue(struct scx_sched *sch, struct rq *rq,
|
|||
p->scx.flags &= ~SCX_TASK_IN_CUSTODY;
|
||||
}
|
||||
|
||||
static void local_dsq_post_enq(struct scx_dispatch_q *dsq, struct task_struct *p,
|
||||
u64 enq_flags)
|
||||
static void local_dsq_post_enq(struct scx_sched *sch, struct scx_dispatch_q *dsq,
|
||||
struct task_struct *p, u64 enq_flags)
|
||||
{
|
||||
struct rq *rq = container_of(dsq, struct rq, scx.local_dsq);
|
||||
bool preempt = false;
|
||||
|
||||
call_task_dequeue(scx_root, rq, p, 0);
|
||||
call_task_dequeue(sch, rq, p, 0);
|
||||
|
||||
/*
|
||||
* If @rq is in balance, the CPU is already vacant and looking for the
|
||||
|
|
@ -1554,7 +1554,7 @@ static void dispatch_enqueue(struct scx_sched *sch, struct rq *rq,
|
|||
* concurrently in a non-atomic way.
|
||||
*/
|
||||
if (is_local) {
|
||||
local_dsq_post_enq(dsq, p, enq_flags);
|
||||
local_dsq_post_enq(sch, dsq, p, enq_flags);
|
||||
} else {
|
||||
/*
|
||||
* Task on global/bypass DSQ: leave custody, task on
|
||||
|
|
@ -2165,7 +2165,8 @@ static void wakeup_preempt_scx(struct rq *rq, struct task_struct *p, int wake_fl
|
|||
schedule_reenq_local(rq, 0);
|
||||
}
|
||||
|
||||
static void move_local_task_to_local_dsq(struct task_struct *p, u64 enq_flags,
|
||||
static void move_local_task_to_local_dsq(struct scx_sched *sch,
|
||||
struct task_struct *p, u64 enq_flags,
|
||||
struct scx_dispatch_q *src_dsq,
|
||||
struct rq *dst_rq)
|
||||
{
|
||||
|
|
@ -2185,7 +2186,7 @@ static void move_local_task_to_local_dsq(struct task_struct *p, u64 enq_flags,
|
|||
dsq_inc_nr(dst_dsq, p, enq_flags);
|
||||
p->scx.dsq = dst_dsq;
|
||||
|
||||
local_dsq_post_enq(dst_dsq, p, enq_flags);
|
||||
local_dsq_post_enq(sch, dst_dsq, p, enq_flags);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2406,7 +2407,7 @@ static struct rq *move_task_between_dsqs(struct scx_sched *sch,
|
|||
/* @p is going from a non-local DSQ to a local DSQ */
|
||||
if (src_rq == dst_rq) {
|
||||
task_unlink_from_dsq(p, src_dsq);
|
||||
move_local_task_to_local_dsq(p, enq_flags,
|
||||
move_local_task_to_local_dsq(sch, p, enq_flags,
|
||||
src_dsq, dst_rq);
|
||||
raw_spin_unlock(&src_dsq->lock);
|
||||
} else {
|
||||
|
|
@ -2459,7 +2460,7 @@ static bool consume_dispatch_q(struct scx_sched *sch, struct rq *rq,
|
|||
|
||||
if (rq == task_rq) {
|
||||
task_unlink_from_dsq(p, dsq);
|
||||
move_local_task_to_local_dsq(p, enq_flags, dsq, rq);
|
||||
move_local_task_to_local_dsq(sch, p, enq_flags, dsq, rq);
|
||||
raw_spin_unlock(&dsq->lock);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user