On Thu, Oct 17, 2024 at 09:04:38AM GMT, Joshua Hahn wrote: > HugeTLB is added as a metric in memcg_stat_item, and is updated in the > alloc and free methods for hugeTLB, after (un)charging has already been > committed. Changes are batched and updated / flushed like the rest of > the memcg stats, which makes additional overhead by the infrequent > hugetlb allocs / frees minimal. > > Signed-off-by: Joshua Hahn <joshua.hahnjy@xxxxxxxxx> I have an orthogonal cleanup request (i.e. after you are done with this work). Hugetlb is the last user of try-charge + commit protocol for memcg charging. I think we should just remove that and use a simple charge interface. You will need to reorder couple of things like allocating the folio first and then charge and you will need to do right cleanup on charge failing but I think it will cleanup the error path of alloc_hugetlb_folio() a lot.