On Fri, 2011-03-04 at 08:52 +0200, Pekka Enberg wrote: > On Fri, Mar 4, 2011 at 2:50 AM, Theodore Tso <tytso@xxxxxxx> wrote: > > Being able to monitor /proc/slabinfo is incredibly useful for finding various > > kernel problems. We can see if some part of the kernel is out of balance, > > and we can also find memory leaks. I once saved a school system's Linux > > deployment because their systems were crashing once a week, and becoming > > progressively more unreliable before they crashed, and the school board > > was about to pull the plug. > > Indeed. However, I'm not sure we need to expose the number of _active > objects_ to non-CAP_ADMIN users (which could be set to zeros if you > don't have sufficient privileges). Memory leaks can be detected from > the total number of objects anyway, no? This: http://www.exploit-db.com/exploits/14814/ loops doing allocations until total==active, and then does one more allocation to get the position in the slab it needs. If we mask 'active', it'll just loop until 'total' gets bumped, and then consider the _previous_ allocation to have been the one that was in the necessary position. As Ted mentioned, the real issue here is being able to infer location inside the slab by correlating your allocations with when the slab statistics get bumped. You can do that with slabinfo pretty precisely, but you can probably also pull it off with meminfo too, albeit with less precision. We need to either keep the bad guys away from the counts (this patch), or de-correlate the counts moving around with the position of objects in the slab. Ted's suggestion is a good one, and the only other thing I can think of is to make the values useless, perhaps by batching and delaying the (exposed) counts by a random amount. -- Dave -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>