Re: [PATCH 3/3] mm/hugetlb: Assert hugetlb_lock in __hugetlb_cgroup_commit_charge

From: Mina Almasry
Date: Fri Apr 19 2024 - 11:03:30 EST


On Wed, Apr 17, 2024 at 2:18 PM Peter Xu <peterx@xxxxxxxxxx> wrote:
>
> This is similar to __hugetlb_cgroup_uncharge_folio() where it relies on
> holding hugetlb_lock. Add the similar assertion like the other one, since
> it looks like such things may help some day.
>
> Signed-off-by: Peter Xu <peterx@xxxxxxxxxx>

Reviewed-by: Mina Almasry <almasrymina@xxxxxxxxxx>

> ---
> mm/hugetlb_cgroup.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
> index aa4486bd3904..e20339a346b9 100644
> --- a/mm/hugetlb_cgroup.c
> +++ b/mm/hugetlb_cgroup.c
> @@ -308,7 +308,7 @@ static void __hugetlb_cgroup_commit_charge(int idx, unsigned long nr_pages,
> {
> if (hugetlb_cgroup_disabled() || !h_cg)
> return;
> -
> + lockdep_assert_held(&hugetlb_lock);

Maybe also remove the comment on the top of the function:

/* Should be called with hugetlb_lock held */

Now that the function asserts, the comment seems redundant, but up to you.

> __set_hugetlb_cgroup(folio, h_cg, rsvd);
> if (!rsvd) {
> unsigned long usage =
> --
> 2.44.0
>


--
Thanks,
Mina