Re: [PATCH v2 2/2] vmscan: shrink_slab() require number of lru_pages, not page order

From: KOSAKI Motohiro
Date: Thu Jul 08 2010 - 20:46:40 EST


> On Thu, 8 Jul 2010, Andrew Morton wrote:
>
> > > AFAICT this is not argument error but someone changed the naming of the
> > > parameter.
> >
> > It's been there since day zero:
> >
> > : commit 2a16e3f4b0c408b9e50297d2ec27e295d490267a
> > : Author: Christoph Lameter <clameter@xxxxxxxxxxxx>
> > : AuthorDate: Wed Feb 1 03:05:35 2006 -0800
> > : Commit: Linus Torvalds <torvalds@xxxxxxxxxxx>
> > : CommitDate: Wed Feb 1 08:53:16 2006 -0800
> > :
> > : [PATCH] Reclaim slab during zone reclaim
>
> That only shows that the order parameter was passed to shrink_slab() which
> is what I remember being done intentionally.
>
> Vaguely recall that this was necessary to avoid shrink_slab() throwing out
> too many pages for higher order allocs.

But It make opposite effect. number of scanning objects of shrink_slab() are

lru_scanned max_pass
basic_scan_objects = 4 x ------------- x -----------------------------
lru_pages shrinker->seeks (default:2)

scan_objects = min(basic_scan_objects, max_pass * 2)


That said, small lru_pages parameter makes too many slab dropping.
Practically, zone-reclaim always take max_pass*2. about inode,
shrink_icache_memory() takes number of unused inode as max_pass.
It mean one shrink_slab() calling drop all icache. Is this optimal
behavior? why?

Am I missing something?

> Initially zone_reclaim was full of heuristics that later were replaced by
> counter as the new ZVCs became available and gradually better ways of
> accounting for pages became possible.


--
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/