Re: [xfs-masters] Re: [PATCH] Cleanup and kernelify shrinker registration (rc5-mm2)

From: David Chinner
Date: Tue Apr 03 2007 - 20:04:27 EST


On Tue, Apr 03, 2007 at 10:36:27AM -0700, Andrew Morton wrote:
> On Tue, 3 Apr 2007 22:37:06 +1000 David Chinner <dgc@xxxxxxx> wrote:
>
> > On Tue, Apr 03, 2007 at 05:18:25PM +1000, Rusty Russell wrote:
> > > On Mon, 2007-04-02 at 23:09 -0700, Andrew Morton wrote:
> > > This is not about efficiency. When have I *ever* posted optimization
> > > patches?
> > >
> > > This is about clarity. We have a standard convention for
> > > register/unregister. And they can't fail. Either of these would be
> > > sufficient to justify a change.
> > >
> > > Too many people doing cool new things in the kernel, not enough
> > > polishing of the crap that's already there 8(
> > >
> > > > But I think we need to weed that crappiness out of XFS first.
> >
> > Can anyone else see the contradiction in these statements?
> >
> > XFS's "crappiness" is a register/unregister interface. The only
> > reason it's being removed is because it's getting replaced with a
> > nearly identical register/unregister interface.
>
> Nope. XFS is introducing two new typedefs, one of which is identical to
> one which we already have and it has wrapper functions which do little more
> than add new names for existing stuff.

And the problem with that is? You haven't noticed this in the five
years it's been there providing XFS with a consistent shrinker
interface.....

FWIW, digging back into history, Rusty's first patch basically
brings use back to the same interface we had in 2.4. Here's
the 2.4 version of that function:

kmem_shaker_t
kmem_shake_register(kmem_shake_func_t sfunc)
{
kmem_shaker_t shaker = kmalloc(sizeof(*shaker), GFP_KERNEL);

if (!shaker)
return NULL;
memset(shaker, 0, sizeof(*shaker));
shaker->shrink = sfunc;
register_cache(shaker);
return shaker;
}

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
-
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/