Re: [PATCH 3/4] mm, page_alloc: Drain per-cpu pages from workqueue context

From: Tejun Heo
Date: Tue Jan 24 2017 - 21:02:27 EST


Hello,

On Tue, Jan 24, 2017 at 11:54:57PM +0000, Mel Gorman wrote:
> @@ -2402,24 +2415,16 @@ void drain_all_pages(struct zone *zone)
> cpumask_clear_cpu(cpu, &cpus_with_pcps);
> }
>
> + for_each_cpu(cpu, &cpus_with_pcps) {
> + struct work_struct *work = per_cpu_ptr(&pcpu_drain, cpu);
> + INIT_WORK(work, drain_local_pages_wq);
> + schedule_work_on(cpu, work);
> }
> + for_each_cpu(cpu, &cpus_with_pcps)
> + flush_work(per_cpu_ptr(&pcpu_drain, cpu));
> +
> put_online_cpus();
> + mutex_unlock(&pcpu_drain_mutex);

Looks good to me.

Thanks.

--
tejun