Re: mlockall and mmap of IO devices don't mix

Andrew Morton
2004-05-25T19:53:34Z

Joe Korty <joe.korty@ccur.com> wrote:
>
> On Fri, May 21, 2004 at 07:13:26PM -0700, Andrew Morton wrote:
> > Mark Hounschell <markh@compro.net> wrote:
> > >
> > > Joe Korty wrote:
> > > >
> > > > 2.6.0-test6: the use of mlockall(2) in a process that has mmap(2)ed
> > > > the registers of an IO device will hang that process uninterruptibly.
> > > > The task runs in an infinite loop in get_user_pages(), invoking
> > > > follow_page() forever.
> > > >
> > > > Using binary search I discovered that the problem was introduced
> > > > in 2.5.14, specifically in ChangeSetKey
> > > >
> > > > zippel@linux-m68k.org|ChangeSet|20020503210330|37095
> > > >
> > >
> > > I know this is an old thread but can anyone tell me if this problem is
> > > resolved in the current 2.6.6 kernel?
> > >
> >
> > There's an utterly ancient patch in -mm which might fix this.
> >
> > http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.6/2.6.6-mm4/broken-out/get_user_pages-handle-VM_IO.patch
>
> [ 2nd send -- corporate email system in the throes of being scrambled / updated ]
>
> Andrew,
> I have been using this patch for ages. Any chance of it being forwared to
> the official tree?

That patch had its first birthday last week. I wrote it in response to
some long-forgotten problem, failed to changelog it at the time then forgot
why I wrote it. I kept it in the hope that I'd remember why I wrote it. I
subsequently wrote a best-effort changelog but am unconvinced by it. Ho
hum.

Let me genuflect a bit. I guess we can be reasonably confident it won't
break anything.