Thank you Seth! On Wed, Aug 27, 2014 at 3:09 PM, Seth Jennings <sjennings@xxxxxxxxxxxxxx> wrote: > On Wed, Aug 27, 2014 at 02:42:52PM -0700, Luigi Semenzato wrote: >> Hello Minchan and others, >> >> I just noticed that the data structures used by zsmalloc have the >> potential to tie up memory unnecessarily. I don't call it "leaking" >> because that memory can be reused, but it's not necessarily returned >> to the system upon freeing. > > Yes, this is a known condition in zsmalloc. > > Compaction is not a simple as it seems because zsmalloc returns a handle > to the user that encodes the pfn. In order the implement a compaction > system, there would need to be some notification method to the alert the > user that their allocation has moved and provide a new handle so the > user can update its structures. This is very non-trivial and I'm not > sure that it can be done safely (i.e. without races). Since the handles are opaque, we can add a level of indirection without affecting users. Assuming that the overhead is tolerable, or anyway less than what we're wasting now. (For some definition of "less".) I agree that notification + update would be a huge pain, not really acceptable. > > I looked at it a while back and it would be a significant effort. > > And yes, if you could do such a thing, you would not want the compaction > triggered by the shrinkers as the users of zsmalloc are only active > under memory pressure. Something like a periodic compaction kthread > would be the best way (after two minutes of thinking about it). > > Seth > > >> >> I have no idea if this has any impact in practice, but I plan to run a >> test in the near future. Also, I am not sure that doing compaction in >> the shrinkers (as planned according to a comment) is the best >> approach, because the shrinkers won't be called unless there is >> considerable pressure, but the compaction would be more effective when >> there is less pressure. >> >> Some more detail here: >> >> https://code.google.com/p/chromium/issues/detail?id=408221 >> >> Should I open a bug on some other tracker? >> >> Thank you very much! >> Luigi >> >> -- >> To unsubscribe, send a message with 'unsubscribe linux-mm' in >> the body to majordomo@xxxxxxxxx. For more info on Linux MM, >> see: http://www.linux-mm.org/ . >> Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>