[PATCH] lowmemorykiller: prevent multiple instances of low memory killer

David Rientjes rientjes at google.com
Mon Apr 15 23:11:18 UTC 2013


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.



More information about the devel mailing list