Re: [RFC PATCH 0/4]: affinity-on-next-touch

From: Balbir Singh
Date: Fri Jun 19 2009 - 11:41:28 EST


* Lee Schermerhorn <Lee.Schermerhorn@xxxxxx> [2009-06-19 11:26:53]:

> On Thu, 2009-06-18 at 15:04 -0400, Lee Schermerhorn wrote:
> > On Thu, 2009-06-18 at 00:37 -0400, Lee Schermerhorn wrote:
> > > On Wed, 2009-06-17 at 09:45 +0200, Stefan Lankes wrote:
> > > > > I've placed the last rebased version in :
> > > > >
> > > > > http://free.linux.hp.com/~lts/Patches/PageMigration/2.6.28-rc4-mmotm-
> > > > > 081110/
> > > > >
> > > >
> > > > OK! I will try to reconstruct the problem.
> > >
> > > Stefan:
> > >
> > > Today I rebased the migrate on fault patches to 2.6.30-mmotm-090612...
> > > [along with my shared policy series atop which they sit in my tree].
> > > Patches reside in:
> > >
> > > http://free.linux.hp.com/~lts/Patches/PageMigration/2.6.30-mmotm-090612-1220/
> > >
> >
> > I have updated the migrate-on-fault tarball in the above location to fix
> > part of the problems I was seeing. See below.
> >
> > >
> > > I did a quick test. I'm afraid the patches have suffered some "bit rot"
> > > vis a vis mainline/mmotm over the past several months. Two possibly
> > > related issues:
> > >
> > > 1) lazy migration doesn't seem to work. Looks like
> > > mbind(<some-policy>+MPOL_MF_MOVE+MPOL_MF_LAZY) is not unmapping the
> > > pages so, of course, migrate on fault won't work. I suspect the
> > > reference count handling has changed since I last tried this. [Note one
> > > of the patch conflicts was in the MPOL_MF_LAZY addition to the mbind
> > > flag definitions in mempolicy.h and I may have botched the resolution
> > > thereof.]
> > >
> > > 2) When the pages get freed on exit/unmap, they are still PageLocked()
> > > and free_pages_check()/bad_page() bugs out with bad page state.
> > >
> > > Note: This is independent of memcg--i.e., happens whether or not memcg
> > > configured.
> > >
> > <snip>
> >
> > OK. Found time to look at this. Turns out I hadn't tested since
> > trylock_page() was introduced. I did a one-for-one replacement of the
> > old API [TestSetPageLocked()], not noticing that the sense of the return
> > was inverted. Thus, I was bailing out of the migrate_pages_unmap_only()
> > loop with the page locked, thinking someone else had locked it and would
> > take care of it. Since the page wasn't unmapped from the page table[s],
> > of course it wouldn't migrate on fault--wouldn't even fault!
> >
> > Fixed this.
> >
> > Now: lazy migration works w/ or w/o memcg configured, but NOT with the
> > swap resource controller configured. I'll look at that as time permits.
>
> Update: I now can't reproduce the lazy migration failure with the swap
> resource controller configured. Perhaps I had booted the wrong kernel
> for the test reported above. Now the updated patch series mentioned
> above seems to be working with both memory and swap resource controllers
> configured for simple memtoy driven lazy migration.

Excellent, I presume that you are using the latest mmotm or mainline.
We've had some swap cache leakage fix go in, but those are not as
serious (they can potentially cause OOM in a cgroup when the leak
occurs).


--
Balbir
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/