[igt-dev] FW: [PATCH i-g-t] lib: Incrementally mlock()

Chris Wilson chris at chris-wilson.co.uk
Tue Feb 26 21:31:23 UTC 2019


Quoting Caz Yokoyama (2019-02-26 20:34:01)
> On Tue, 2019-02-26 at 17:42 +0000, Chris Wilson wrote:
> > Quoting Yokoyama, Caz (2019-02-26 17:42:51)
> > > Chris,
> > > I am OK to give "Reviewed by: XXXX" to your patch.
> > > However, I want to add following comment/modification which does
> > > not
> > > affect the effect of your patch.
> > > 
> > > +                               /*
> > > +                                * This is a bug which mlocks far
> > > beyond memory,
> > > +                                * i.e. there is a hole between 3/4
> > > of
> > > avail and
> > > +                                * (bytes * sizeof(*can_mlock))
> > > where
> > > +                                * sizeof(*can_mlock)=8. Because of
> > > the
> > > hole, mlock()
> > > +                                * may fail and get out of while
> > > loop.
> > > +                                * However, We need the hole.
> > > Otherwise
> > > OOM kills parent
> > > +                                * process. Another mlock() below
> > > is
> > > same.
> > > +                                */
> > > +                               if (mlock((void *)can_mlock +
> > > (bytes *
> > > sizeof(*can_mlock)),
> > 
> > But that's a bug in our code, not mlock(). If we try to mlock more
> > memory than is available on the system, quite understandably mlock
> > fails.
> > 
> > So what you are saying here is that you purposely want to not find
> > the
> > limits of mlockable memory.
> > 
> > The bug as far as I am concerned was that a subsequent mlock could
> > not
> > claim the same amount of memory as a previous one -- that feels like
> > the
> > mm is not reclaiming everything it can after killing the child, or at
> > least not making that available again immediately.
> > -Chris
> Even there was this bug in original code. We have to fix the bug.
> However, Fixing the bug makes the test die. I proposed a solution. But
> it destroys the purpose of the test. I have no idea how to achieve both
> fixing the bug and test porpose.

You are replying to v1 not v2...
-Chris


More information about the igt-dev mailing list