Re: [BUG REPORT] [mm-hotplug, aio] aio ring_pages can't be offlined

From: Mel Gorman
Date: Mon Dec 03 2012 - 06:37:02 EST


On Mon, Dec 03, 2012 at 10:52:27AM +0800, Lin Feng wrote:
>
>
> On 11/30/2012 07:00 PM, Mel Gorman wrote:
> >>
> >> Well, that's a fairly low-level implementation detail. A more typical
> >> approach would be to add a new get_user_pages_non_movable() or such.
> >> That would probably have the same signature as get_user_pages(), with
> >> one additional argument. Then get_user_pages() becomes a one-line
> >> wrapper which passes in a particular value of that argument.
> >>
> >
> > That is going in the direction that all pinned pages become MIGRATE_UNMOVABLE
> > allocations. That will impact THP availability by increasing the number
> > of MIGRATE_UNMOVABLE blocks that exist and it would hit every user --
> > not just those that care about ZONE_MOVABLE.
> >
> > I'm likely to NAK such a patch if it's only about node hot-remove because
> > it's much more of a corner case than wanting to use THP.
> >
> > I would prefer if get_user_pages() checked if the page it was about to
> > pin was in ZONE_MOVABLE and if so, migrate it at that point before it's
> > pinned. It'll be expensive but will guarantee ZONE_MOVABLE availability
> > if that's what they want. The CMA people might also want to take
> > advantage of this if the page happened to be in the MIGRATE_CMA
> > pageblock.
> >
> hi Mel,
>
> Thanks for your suggestion.
> My initial idea is also to restrict the impact as little as possible so
> migrate such pages as we need.
> But even to such "going to pin pages", most of them are going to be released
> soon, so deal with them all in the same way is really *expensive*.
>

Then you need to somehow distinguish between short-lived pins and
long-lived pins and only migrate the long-lived pins. I didn't research
how this could be implemented

--
Mel Gorman
SUSE Labs
--
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/