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

From: Mel Gorman
Date: Wed Jan 25 2017 - 03:31:06 EST


On Tue, Jan 24, 2017 at 09:02:20PM -0500, Tejun Heo wrote:
> 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.

--
Mel Gorman
SUSE Labs