Messages in this thread | | | From | Linus Torvalds <> | Date | Tue, 12 Apr 2011 15:43:48 -0700 | Subject | Re: Processes hang in an unkillable state |
| |
On Tue, Apr 12, 2011 at 3:30 PM, Robert Święcki <robert@swiecki.net> wrote: > > btw, here might be another path which hits this (at least I think so).
So both mprotect and mlock will do the same "split/merge vma's as necessary", but neither of them should actually ever _expand_ a mapping or change the vm_pgoff of a vma (except to fix up the pgoff as a vma is split).
So what I think is happening is that a previous vma operation (like the mremap or the stack expansion) did the expand and created a vma with a wrapping vm_pgoff. But nothing bad happened, because nobody really _cares_ about the wrapping until later, when we split the vma.
So I think (and hope) that your mprotect issue is exactly the same as your mlock issue, and that the deeper problem was the earlier stack expansion.
That said, I'm not at all going to guarantee that it's about stack expansion. There might be something else going on, and the stack expansion was just the first thing that I could think of as doing something similar to mremap(), causing a wrapping vm_pgoff.
Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |