hulk inclusion category: cleanup bugzilla: https://atomgit.com/openeuler/kernel/issues/8423 -------------------------------- The xcu is already bound to xse during enqueue, so passing it again in dequeue_ctx is unnecessary. This change simplifies the interface and avoids redundancy. Signed-off-by: Liu Kai <liukai284@huawei.com> --- include/linux/xsched.h | 2 +- kernel/xsched/cgroup.c | 4 ++-- kernel/xsched/core.c | 14 +++++++------- kernel/xsched/vstream.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/linux/xsched.h b/include/linux/xsched.h index 16d3bde2dc9b..0a09b94886db 100644 --- a/include/linux/xsched.h +++ b/include/linux/xsched.h @@ -448,7 +448,7 @@ int xsched_vsm_add_tail(struct vstream_info *vs, vstream_args_t *arg); struct vstream_metadata *xsched_vsm_fetch_first(struct vstream_info *vs); void xsched_rt_prio_set(pid_t tgid, unsigned int prio); void enqueue_ctx(struct xsched_entity *xse, struct xsched_cu *xcu); -void dequeue_ctx(struct xsched_entity *xse, struct xsched_cu *xcu); +void dequeue_ctx(struct xsched_entity *xse); int delete_ctx(struct xsched_context *ctx); #ifdef CONFIG_CGROUP_XCU diff --git a/kernel/xsched/cgroup.c b/kernel/xsched/cgroup.c index c8c2fddbfad1..c9779f4224e0 100644 --- a/kernel/xsched/cgroup.c +++ b/kernel/xsched/cgroup.c @@ -114,7 +114,7 @@ static void xcg_perxcu_cfs_rq_deinit(struct xsched_group *xcg, int max_id) for (i = 0; i < max_id; i++) { xcu = xsched_cu_mgr[i]; mutex_lock(&xcu->xcu_lock); - dequeue_ctx(&xcg->perxcu_priv[i].xse, xcu); + dequeue_ctx(&xcg->perxcu_priv[i].xse); kfree(xcg->perxcu_priv[i].cfs_rq); xcg->perxcu_priv[i].cfs_rq = NULL; mutex_unlock(&xcu->xcu_lock); @@ -423,7 +423,7 @@ void xcu_move_task(struct task_struct *task, struct xsched_group *old_xcg, mutex_lock(&xcu->xcu_lock); /* dequeue from the current runqueue */ - dequeue_ctx(xse, xcu); + dequeue_ctx(xse); /* attach to the new_xcg */ xsched_group_xse_attach(new_xcg, xse); /* enqueue to the runqueue in new_xcg */ diff --git a/kernel/xsched/core.c b/kernel/xsched/core.c index 779e4b4e6fdd..d1ba01b3155c 100644 --- a/kernel/xsched/core.c +++ b/kernel/xsched/core.c @@ -106,7 +106,7 @@ static struct xsched_entity *__raw_pick_next_ctx(struct xsched_cu *xcu) class->select_work(xcu, next) : select_work_def(xcu, next); if (scheduled == 0) { - dequeue_ctx(next, xcu); + dequeue_ctx(next); return NULL; } @@ -133,15 +133,15 @@ void enqueue_ctx(struct xsched_entity *xse, struct xsched_cu *xcu) } } -void dequeue_ctx(struct xsched_entity *xse, struct xsched_cu *xcu) +void dequeue_ctx(struct xsched_entity *xse) { - lockdep_assert_held(&xcu->xcu_lock); - if (xse_integrity_check(xse)) { XSCHED_ERR("Fail to check xse integrity @ %s\n", __func__); return; } + lockdep_assert_held(&xse->xcu->xcu_lock); + if (xse->on_rq) { xse->class->dequeue_ctx(xse); XSCHED_DEBUG("Dequeue xse %d @ %s\n", xse->tgid, __func__); @@ -172,7 +172,7 @@ int delete_ctx(struct xsched_context *ctx) mutex_lock(&xcu->xcu_lock); if (curr_xse == xse) xcu->xrq.curr_xse = NULL; - dequeue_ctx(xse, xcu); + dequeue_ctx(xse); #ifdef CONFIG_CGROUP_XCU xsched_group_xse_detach(xse); @@ -412,11 +412,11 @@ int xsched_schedule(void *input_xcu) /* if not deleted yet */ put_prev_ctx(curr_xse); if (!atomic_read(&curr_xse->kicks_pending_cnt)) - dequeue_ctx(curr_xse, xcu); + dequeue_ctx(curr_xse); #ifdef CONFIG_CGROUP_XCU if (xsched_quota_exceed(curr_xse->parent_grp)) { - dequeue_ctx(&curr_xse->parent_grp->perxcu_priv[xcu->id].xse, xcu); + dequeue_ctx(&curr_xse->parent_grp->perxcu_priv[xcu->id].xse); curr_xse->parent_grp->perxcu_priv[xcu->id].nr_throttled++; curr_xse->parent_grp->perxcu_priv[xcu->id].start_throttled_time = ktime_get(); diff --git a/kernel/xsched/vstream.c b/kernel/xsched/vstream.c index bf2f8c6b5c6c..3ea6fcb97530 100644 --- a/kernel/xsched/vstream.c +++ b/kernel/xsched/vstream.c @@ -91,7 +91,7 @@ static void xsched_task_free(struct kref *kref) mutex_unlock(&xcu->ctx_list_lock); mutex_lock(&xcu->xcu_lock); - dequeue_ctx(&ctx->xse, xcu); + dequeue_ctx(&ctx->xse); kfree(ctx); mutex_unlock(&xcu->xcu_lock); } -- 2.34.1