Re: [PATCH V5] Allow compaction of unevictable pages

From: David Rientjes
Date: Fri Mar 13 2015 - 19:19:18 EST


On Fri, 13 Mar 2015, Eric B Munson wrote:

> > > --- a/mm/compaction.c
> > > +++ b/mm/compaction.c
> > > @@ -1046,6 +1046,8 @@ typedef enum {
> > > ISOLATE_SUCCESS, /* Pages isolated, migrate */
> > > } isolate_migrate_t;
> > >
> > > +int sysctl_compact_unevictable;
> > > +
> > > /*
> > > * Isolate all pages that can be migrated from the first suitable block,
> > > * starting at the block pointed to by the migrate scanner pfn within
> >
> > I suspect that the use cases where users absolutely do not want
> > unevictable pages migrated are special cases, and it may make
> > sense to enable sysctl_compact_unevictable by default.
>
> Given that sysctl_compact_unevictable=0 is the way the kernel behaves
> now and the push back against always enabling compaction on unevictable
> pages, I left the default to be the behavior as it is today. I agree
> that this is likely the minority case, but I'd really like Peter Z or
> someone else from real time to say that they are okay with the default
> changing.
>

It would be really disappointing to not enable this by default for !rt
kernels. We haven't migrated mlocked pages in the past by way of memory
compaction because it can theoretically result in consistent minor page
faults, but I haven't yet heard a !rt objection to enabling this.

If the rt patchset is going to carry a patch to disable this, then the
question arises: why not just carry an ISOLATE_UNEVICTABLE patch instead?
I think you've done the due diligence required to allow this to be
disabled at any time in a very easy way from userspace by the new tunable.
I think it should be enabled and I'd be very surprised to hear any other
objection about it other than it's different from the status quo.
--
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/