Re: [PATCH v12 5/9] hugetlb_cgroup: add accounting for shared mappings

From: David Rientjes
Date: Sat Feb 15 2020 - 20:29:12 EST


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?