[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160912110307.GA2417@redhat.com>
Date: Mon, 12 Sep 2016 13:03:07 +0200
From: Oleg Nesterov <oleg@...hat.com>
To: Cheng Chao <cs.os.kernel@...il.com>
Cc: mingo@...nel.org, peterz@...radead.org, tj@...nel.org,
akpm@...ux-foundation.org, chris@...is-wilson.co.uk,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] stop_machine: Make migration_cpu_stop() does useful
works for CONFIG_PREEMPT_NONE
On 09/10, Cheng Chao wrote:
>
> @@ -126,6 +126,17 @@ int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg)
> cpu_stop_init_done(&done, 1);
> if (!cpu_stop_queue_work(cpu, &work))
> return -ENOENT;
> +
> +#if defined(CONFIG_PREEMPT_NONE)
> + /*
> + * Makes the stopper thread run as soon as possible.
> + * And if the caller is TASK_RUNNING, keeps the caller TASK_RUNNING.
> + * It's special useful for some callers which are expected to be
> + * TASK_ON_RQ_QUEUED.
> + * sched_exec does benefit from this improvement.
> + */
> + schedule();
> +#endif
> wait_for_completion(&done.completion);
> return done.ret;
> }
Cheng, I already tried twice to suggest to conditionalize this schedule,
because it can only help if cpu == smp_processor_id, and you didn't reply.
I still think _cond_resched() makes more sense.
I won't really argue if you prefer it this way. But did you see my emails?
Oleg.
Powered by blists - more mailing lists