On Fri, May 15, 2020 at 09:45:30PM +0000, Christoph Lameter wrote: > On Tue, 12 May 2020, Roman Gushchin wrote: > > > > Add it to the metadata at the end of the object. Like the debugging > > > information or the pointer for RCU freeing. > > > > Enabling debugging metadata currently disables the cache merging. > > I doubt that it's acceptable to sacrifice the cache merging in order > > to embed the memcg pointer? > > Well then keep the merging even if you have a memcg pointer. > > The disabling for debugging is only to simplify debugging. You dont have > to deal with multiple caches actually using the same storage structures. > > > Figuring out all these details will likely take several weeks, so the whole > > thing will be delayed for one-two major releases (in the best case). Given that > > the current implementation saves ~40% of slab memory, I think there is some value > > in delivering it as it is. So I wonder if the idea of embedding the pointer > > should be considered a blocker, or it can be implemented of top of the proposed > > code (given it's not a user-facing api or something like this)? > > Sorry no idea from my end here. Ok, then I'll continue working on the embedding the pointer as an enhancement *on top* of the current patchset. As I showed in my other e-mail, switching to a different way of obj_cgroup storage is fairly trivial and doesn't change much in the rest of the patchset. Please, let me know if you're not ok with it. Thanks!