Re: 2.6.22-rc4-mm1

Peter Zijlstra
2007-06-06T19:28:23Z

On Wed, 2007-06-06 at 19:06 +0200, Peter Zijlstra wrote:
> On Wed, 2007-06-06 at 09:35 -0700, William Lee Irwin III wrote:
> > On Wed, Jun 06, 2007 at 05:26:49PM +0100, Mel Gorman wrote:
> > > I do not believe this is Nick's problem. I encountered the same issue and
> > > the bisect ended up here;
> > > # BISECT HERE
> > > mm-variable-length-argument-support.patch
> > > mm-variable-length-argument-support-fix.patch
> > > # BISECT BAD
> > > Reverting those two patches boots ok on my standalone x86 laptop.
> > > Patch authors cc'd. I have not read the patches yet to see what might
> > > be the problem.
> >
> > I found this a while ago and peterz already has a tentative fix for it at
> > http://programming.kicks-ass.net/kernel-patches/max_arg_pages/move_anon_vma.patch
> > I'm sure he himself will chime in with more/better code when he returns.
>
> Ah, yes indeed. We were discussing wether it would be better to update
> page->index (as this patch does) or not change vma->vm_pgoff. Bill
> argued that the latter would be safe, it would just limit the merge
> capabilities of the anon vma (and the stack rarely, if ever, merges
> anyway).
>
> I myself an not quite sure on the effects of ->vm_pgoff of anon vmas
> yet.

Ok, from what I can make of it, nobody relies on the value of
vma->vm_pgoff for anon vmas as long as the following invariant is kept:

vaddr = vma->vm_start + (page->index - vma->vm_pgoff)*PAGE_SIZE

So the proper thing to do is not change vm_pgoff.