Re: [PATCH] lowmemorykiller: prevent multiple instances of low memorykiller

From: David Rientjes
Date: Mon Apr 15 2013 - 19:11:25 EST


On Mon, 15 Apr 2013, Greg Kroah-Hartman wrote:

> > The positive numbers are used to return information on the remaining
> > cache size (again, see the comment I pasted above). We could use
> > -EBUSY, but we'd have to change vmscan.c, which checks specifically
> > for -1. I can't see a technical reason why -EBUSY couldn't have been
> > chosen instead, but there's also no real reason to change it now.
>
> If it's not the correct thing to do, sure we can change it, just send a
> patch. It makes way more sense than some random -1 return value to me.
>
> Care to send a series of patches fixing this up properly?
>

The comment in shrinker.h is misleading, not the source code.
do_shrinker_shrink() will fail for anything negative and 0. The patch
being discussed could easily use -1 or 0 hardcoded into the return value,
forget the definition of LMK_BUSY.

Also, please consider using an atomic chmpxchg instead of a spinlock: if
you're only ever doing spin_trylock() then you don't need a spinlock.
--
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/