From: Christoph Hellwig on
On Thu, Jul 15, 2010 at 09:46:56PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner(a)redhat.com>
>
> The current shrinker implementation requires the registered callback
> to have global state to work from. This makes it difficult to shrink
> caches that are not global (e.g. per-filesystem caches). Pass the shrinker
> structure to the callback so that users can embed the shrinker structure
> in the context the shrinker needs to operate on and get back to it in the
> callback via container_of().
>
> Signed-off-by: Dave Chinner <dchinner(a)redhat.com>

Looks good,


Reviewed-by: Christoph Hellwig <hch(a)lst.de>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Alex Elder on
On Thu, 2010-07-15 at 21:46 +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner(a)redhat.com>
>
> The current shrinker implementation requires the registered callback
> to have global state to work from. This makes it difficult to shrink
> caches that are not global (e.g. per-filesystem caches). Pass the shrinker
> structure to the callback so that users can embed the shrinker structure
> in the context the shrinker needs to operate on and get back to it in the
> callback via container_of().

> Signed-off-by: Dave Chinner <dchinner(a)redhat.com>
> ---
> arch/x86/kvm/mmu.c | 2 +-
> drivers/gpu/drm/i915/i915_gem.c | 2 +-
> fs/dcache.c | 2 +-
> fs/gfs2/glock.c | 2 +-
> fs/gfs2/quota.c | 2 +-
> fs/gfs2/quota.h | 2 +-
> fs/inode.c | 2 +-
> fs/mbcache.c | 5 +++--
> fs/nfs/dir.c | 2 +-
> fs/nfs/internal.h | 3 ++-
> fs/quota/dquot.c | 2 +-
> fs/ubifs/shrinker.c | 2 +-
> fs/ubifs/ubifs.h | 2 +-
> fs/xfs/linux-2.6/xfs_buf.c | 5 +++--
> fs/xfs/linux-2.6/xfs_sync.c | 1 +
> fs/xfs/quota/xfs_qm.c | 7 +++++--
> include/linux/mm.h | 2 +-
> mm/vmscan.c | 8 +++++---
> 18 files changed, 31 insertions(+), 22 deletions(-)

You seem to have missed two registered shrinkers:
- ttm_pool_mm_shrink() in "drivers/gpu/drm/ttm/ttm_page_alloc.c"
- rpcauth_cache_shrinker() in "net/sunrpc/auth.c"

Other that that, this looks good to me.

-Alex





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