Re: [mm, net-next v2] mm: net: memcg accounting for TCP rx zerocopy
From: Michal Hocko <mhocko@suse.com>
Date: 2021-03-24 21:57:27
Also in:
linux-mm, lkml, netdev
From: Michal Hocko <mhocko@suse.com>
Date: 2021-03-24 21:57:27
Also in:
linux-mm, lkml, netdev
On Wed 24-03-21 13:53:34, Shakeel Butt wrote: [...]
quoted
Given that's the case, the options seem to be: 1) Use a page flag - with the downside that they are a severely limited resource, 2) Use some bits inside page->memcg_data - this I believe Johannes had reasons against, and it isn't always the case that MEMCG support is enabled. 3) Use compound_dtor - but I think this would have problems for the prior reasons.I don't think Michal is suggesting to use PageCompound() or PageHead(). He is suggesting to add a more general page flag (PageHasDestructor) and corresponding page->dtor, so other potential users can use it too.
Yes, that is eaxactly my point. If there is a page flag to use for a specific destruction then we can use an already existing scheme. I have fully digested Johannes' other reply so I might be still missing something but fundamentally if sombody knows that the particular part of the page is not used (most really should) then the page can claim destructor by a flag and the freeing routine would just call that callback. Or is there any reason why othe subsystems outside of networking couldn't claim their own callback? -- Michal Hocko SUSE Labs