Re: [PATCH v2 4/8] mm/isolation: close the two race problems related to pageblock isolation

From: Joonsoo Kim
Date: Wed Aug 13 2014 - 04:10:14 EST


On Tue, Aug 12, 2014 at 11:45:32AM +0200, Vlastimil Babka wrote:
> On 08/12/2014 07:17 AM, Minchan Kim wrote:
> >On Wed, Aug 06, 2014 at 04:18:33PM +0900, Joonsoo Kim wrote:
> >>
> >>One solution to this problem is checking pageblock migratetype with
> >>holding zone lock in __free_one_page() and I posted it before, but,
> >>it didn't get welcome since it needs the hook in zone lock critical
> >>section on freepath.
> >
> >I didn't review your v1 but IMHO, this patchset is rather complex.
>
> It is, but the complexity is in the isolation code, and not fast
> paths, so that's justifiable IMHO.
>
> >Normally, we don't like adding more overhead in fast path but we did
> >several time on hotplug/cma, esp so I don't know a few more thing is
> >really hesitant.
>
> This actually undoes most of the overhead, so I'm all for it. Better
> than keep doing stuff the same way just because it was done
> previously.
>
> >In addition, you proved by this patchset how this
> >isolation code looks ugly and fragile for race problem so I vote
> >adding more overhead in fast path if it can make code really simple.
>
> Well, I recommend you to check out the v1 then :) That wasn't really
> simple, that was even more hooks rechecking migratetypes at various
> places of the fast paths, when merging buddies etc. This is much
> better. The complexity is mostly in the isolation code, and the
> overhead happens only during isolation.

Hmm... Okay.

I agree that this way is so complicated. In fact, the real save is just
one is_migrate_isolate_page() check in free_pcppages_bulk() and
this approach makes isolation process really complicated.

I guess that I could improve v1 patchset. How about waiting my
improved v1 and comparing v1' with v2?

If v1 is implemented cleanly, it may be better than this.
I want to try and compare. :)

Thanks.
--
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/