Thread (57 messages) 57 messages, 7 authors, 2012-12-19

Re: [patch 2/8] mm: vmscan: disregard swappiness shortly before going OOM

From: Michal Hocko <hidden>
Date: 2012-12-13 15:30:04
Also in: lkml

On Thu 13-12-12 10:34:20, Mel Gorman wrote:
On Wed, Dec 12, 2012 at 04:43:34PM -0500, Johannes Weiner wrote:
quoted
When a reclaim scanner is doing its final scan before giving up and
there is swap space available, pay no attention to swappiness
preference anymore.  Just swap.

Note that this change won't make too big of a difference for general
reclaim: anonymous pages are already force-scanned when there is only
very little file cache left, and there very likely isn't when the
reclaimer enters this final cycle.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Ok, I see the motivation for your patch but is the block inside still
wrong for what you want? After your patch the block looks like this

                if (sc->priority || noswap) {
                        scan >>= sc->priority;
                        if (!scan && force_scan)
                                scan = SWAP_CLUSTER_MAX;
                        scan = div64_u64(scan * fraction[file], denominator);
                }

if sc->priority == 0 and swappiness==0 then you enter this block but
fraction[0] for anonymous pages will also be 0 and because of the ordering
of statements there, scan will be

scan = scan * 0 / denominator

so you are still not reclaiming anonymous pages in the swappiness=0
case. What did I miss?
Yes, now that you have mentioned that I realized that it really doesn't
make any sense. fraction[0] is _always_ 0 for swappiness==0. So we just
made a bigger pressure on file LRUs. So this sounds like a misuse of the
swappiness. This all has been introduced with fe35004f (mm: avoid
swapping out with swappiness==0).

I think that removing swappiness check make sense but I am not sure it
does what the changelog says. It should have said that checking
swappiness doesn't make any sense for small LRUs.
-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help