Re: [patch 4/6] mm: merge populate and nopage into fault (fixes nonlinear)

Andrew Morton
2007-03-07T09:40:19Z

On Wed, 7 Mar 2007 01:29:03 -0800 Bill Irwin <bill.irwin@oracle.com> wrote:

> On Wed, 7 Mar 2007 09:27:55 +0100 Ingo Molnar <mingo@elte.hu> wrote:
> >> btw., if we decide that nonlinear isnt worth the continuing maintainance
> >> pain, we could internally implement/emulate sys_remap_file_pages() via a
> >> call to mremap() and essentially deprecate it, without breaking the ABI
> >> - and remove all the nonlinear code. (This would split fremap areas into
> >> separate vmas)
>
> On Wed, Mar 07, 2007 at 12:35:20AM -0800, Andrew Morton wrote:
> > I'm rather regretting having merged it - I don't think it has been used for
> > much.
> > Paolo's UML speedup patches might use nonlinear though.
>
> Guess what major real-life application not only uses nonlinear daily
> but would even be very happy to see it extended with non-vma-creating
> protections and more?

uh-oh. SQL server?

> It's not terribly typical for things to be
> truncated while remap_file_pages() is doing its work, though it's been
> proposed as a method of dynamism. It won't stress remap_file_pages() vs.
> truncate() in any meaningful way, though, as userspace will be rather
> diligent about clearing in-use data out of the file offset range to be
> truncated away anyway, and all that via O_DIRECT.

The problem here isn't related to truncate or direct-IO. It's just
plain-old MAP_SHARED. nonlinear VMAs are now using the old-style
dirty-memory management. msync() is basically a no-op and the code is
wildly tricky and pretty much untested. The chances that we broke it are
considerable.