On Wed, Nov 6, 2024 at 6:50 PM Shakeel Butt <shakeel.butt@xxxxxxxxx> wrote: > > > > > -int mem_cgroup_hugetlb_try_charge(struct mem_cgroup *memcg, gfp_t gfp, > > - long nr_pages); > > +int mem_cgroup_charge_hugetlb(struct folio *folio, gfp_t gfp); > > Please cleanup mem_cgroup_cancel_charge() and mem_cgroup_commit_charge() > as well as there will be no users after this patch. > > > /* > > * Processes that did not create the mapping will have no > > @@ -3056,6 +3044,12 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, > > /* Fall through */ > > } > > > > + ret = mem_cgroup_charge_hugetlb(folio, gfp); > > You can not call this with hugetlb_lock held. > > > { > > - /* > > - * If hugetlb memcg charging is not enabled, do not fail hugetlb allocation, > > - * but do not attempt to commit charge later (or cancel on error) either. > > - */ > > - if (mem_cgroup_disabled() || !memcg || > > - !cgroup_subsys_on_dfl(memory_cgrp_subsys) || !memcg_accounts_hugetlb()) > > + struct mem_cgroup *memcg = get_mem_cgroup_from_current(); > > Leaking the above reference in error paths. > Hello Shakeel, Thank you for your feedback on this patch. I will implement the changes you mentioned in both patches. As for the comment on the other patch about replacing the accounting check in mem_cgroup_hugetlb_try_charge, I think this makes more sense. I will move the code from this patch to the first. Thank you again, have a great day! Joshua