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

From: Vlastimil Babka
Date: Tue Aug 12 2014 - 05:45:44 EST


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.

Vlastimil?

Well, I was the main opponent of v1 and suggested to do v2 like this, so here you go :)

To Joonsoo,

you want to send this patchset for stable since review is done?
IIRC, you want to fix freepage couting bug and send it to stable but
as I see this patchset, no make sense to send to stable. :(

Yeah that's one disadvantage. But I wouldn't like the v1 for stable even more.


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