On Tue, 11 Feb 2020, Mina Almasry wrote: > For shared mappings, the pointer to the hugetlb_cgroup to uncharge lives > in the resv_map entries, in file_region->reservation_counter. > > After a call to region_chg, we charge the approprate hugetlb_cgroup, and if > successful, we pass on the hugetlb_cgroup info to a follow up region_add call. > When a file_region entry is added to the resv_map via region_add, we put the > pointer to that cgroup in file_region->reservation_counter. If charging doesn't > succeed, we report the error to the caller, so that the kernel fails the > reservation. > > On region_del, which is when the hugetlb memory is unreserved, we also uncharge > the file_region->reservation_counter. > > Signed-off-by: Mina Almasry <almasrymina@xxxxxxxxxx> > Does this develop a dependency on hugetlb_cgroup.h in hugetlb.h? Or maybe we only need a forward declaration of struct file_region there?