Re: [PATCH] sched: Fix migration_cpu_stop() return value

Kirill Tkhai
2014-06-04T11:18:52Z

Hi, Peter,

04.06.2014, 14:41, "Peter Zijlstra" <peterz@infradead.org>:
>  A while ago I did a similar patch for some debugging, but looking at it
>  again today I realized we should probably fix this anyway.
>
>  ---
>  Subject: sched: Fix migration_cpu_stop() return value
>
>  There are a number of migration_cpu_stop() users; and some actually care
>  about the success of the migration. So report this.
>
>  In particular migrate_task_to() as used from task_numa_migrate()
>  actually tests this return value.
>
>  Also change set_cpus_allowed_ptr() to propagate this return value, since
>  it already returns other errors.
>
>  Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
>  Cc: Ingo Molnar <mingo@redhat.com>
>  Signed-off-by: Peter Zijlstra <peterz@infradead.org>
>  ---
>   kernel/sched/core.c |   15 +++++++++++----
>   1 file changed, 11 insertions(+), 4 deletions(-)
(snipped everything because of bad email editor)

In set_cpus_allowed_ptr() p->on_rq branch can not fail.

We've changed affinity and released rq's lock, so task can migrate
on allowed cpu only (even if migration_cpu_stop fails).

And it's a little ambiguously how user should react on this EAGAIN.

Regards,
Kirill.