Re: [PATCH] sched: Removed redundant set_current_state in "yield"

From: Peter Zijlstra
Date: Mon May 07 2012 - 09:13:47 EST


On Tue, 2012-04-10 at 21:15 +0530, Sasikantha babu wrote:
> Removed redundant setting current task state to TASK_RUNNING.
>
> During yield process will always remains in TASK_RUNNING state.

Uhm, no, if you call yield() with !TASK_RUNNING you'll block and need a
proper wakeup. That is, you can in fact abuse yield() as schedule().

> Process state of yielded process will not change from TASK_RUNNING, so it does not
> make sense setting the process state again to TASK_RUNNING (TASK_RUNNING -> TASK_RUNNING).

No real objections, but have you tested/verified that all users are
indeed unaffected by this change?

> Signed-off-by: Sasikantha babu <sasikanth.v19@xxxxxxxxx>
> ---
> kernel/sched/core.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 4603b9d..c2a357d 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -4624,7 +4624,6 @@ EXPORT_SYMBOL(__cond_resched_softirq);
> */
> void __sched yield(void)
> {
> - set_current_state(TASK_RUNNING);
> sys_sched_yield();
> }
> EXPORT_SYMBOL(yield);



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/