RE: [PATCH 06/11] mm: frontswap: make all branches of if statement in put page consistent

Dan Magenheimer
2012-06-07T20:57:15Z

> From: Konrad Rzeszutek Wilk
> Subject: Re: [PATCH 06/11] mm: frontswap: make all branches of if statement in put page consistent
>
> On Wed, Jun 06, 2012 at 12:55:10PM +0200, Sasha Levin wrote:
> > Currently it has a complex structure where different things are compared
> > at each branch. Simplify that and make both branches look similar.
> >
> > Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
> > ---
> > mm/frontswap.c | 10 +++++-----
> > 1 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/mm/frontswap.c b/mm/frontswap.c
> > index 618ef91..f2f4685 100644
> > --- a/mm/frontswap.c
> > +++ b/mm/frontswap.c
> > @@ -119,16 +119,16 @@ int __frontswap_put_page(struct page *page)
> > frontswap_succ_puts++;
> > if (!dup)
> > atomic_inc(&sis->frontswap_pages);
> > - } else if (dup) {
> > + } else {
> > /*
> > failed dup always results in automatic invalidate of
> > the (older) page from frontswap
> > */
> > - frontswap_clear(sis, offset);
> > - atomic_dec(&sis->frontswap_pages);
> > - frontswap_failed_puts++;
>
> Hmm, you must be using an older branch b/c the frontswap_failed_puts++
> doesn't exist anymore. Could you rebase on top of linus/master please.

Reminds me... at some point I removed the ability to observe
and set frontswap_curr_pages from userland, which is very useful
in testing and could be useful for future userland sysadmin tools.
IIRC, when transitioning from sysfs to debugfs (akpm's feedback),
I couldn't figure out how to make it writeable from debugfs, so
just dropped it and never added it back.

Writing the value is like a partial (or full) swapoff of the
pages stored via frontswap into zcache/ramster/tmem. So kinda
similar to drop_caches?

I'd sure welcome a patch to add that back in!