Re: [PATCH] sched: core: Remove unnecessary ‘NULL’ values from pending

From: K Prateek Nayak
Date: Wed May 29 2024 - 01:42:28 EST


Hello Kunyu,

On 5/28/2024 12:15 PM, kunyu wrote:
> pending is assigned first, so it does not need to initialize the
> assignment.
>
> Signed-off-by: kunyu <kunyu@xxxxxxxxxxxx>
> ---
> kernel/sched/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index bcf2c4cc0522..e32fea8f5830 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -2969,7 +2969,7 @@ static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flag
> __releases(rq->lock)
> __releases(p->pi_lock)
> {
> - struct set_affinity_pending my_pending = { }, *pending = NULL;
> + struct set_affinity_pending my_pending = { }, *pending;

Can "pending" here be initialized to "p->migration_pending" and later
be changed to the updated value of "p->migration_pending" for the
SCA_MIGRATE_ENABLE case?

if (!(flags & SCA_MIGRATE_ENABLE)) {
/* serialized by p->pi_lock */
if (!p->migration_pending) {
...

/* Update pending to new value of p->migration_pending */
pending = p->migration_pending = &my_pending;
} else {
...
}
}
--

Rest of the initial assignments to "pending" can be dropped then.
Thoughts?

> bool stop_pending, complete = false;
>
> /* Can the task run on the task's current CPU? If so, we're done */

--
Thanks and Regards,
Prateek