Re: [PATCH v5 0/7] hugetlb_cgroup: Add hugetlb_cgroup reservation limits

From: David Rientjes
Date: Thu Sep 26 2019 - 15:28:17 EST


On Tue, 24 Sep 2019, Mina Almasry wrote:

> > I personally prefer the one counter approach only for the reason that it
> > exposes less information about hugetlb reservations. I was not around
> > for the introduction of hugetlb reservations, but I have fixed several
> > issues having to do with reservations. IMO, reservations should be hidden
> > from users as much as possible. Others may disagree.
> >
> > I really hope that Aneesh will comment. He added the existing hugetlb
> > cgroup code. I was not involved in that effort, but it looks like there
> > might have been some thought given to reservations in early versions of
> > that code. It would be interesting to get his perspective.
> >
> > Changes included in patch 4 (disable region_add file_region coalescing)
> > would be needed in a one counter approach as well, so I do plan to
> > review those changes.
>
> OK, FWIW, the 1 counter approach should be sufficient for us, so I'm
> not really opposed. David, maybe chime in if you see a problem here?
> From the perspective of hiding reservations from the user as much as
> possible, it is an improvement.
>
> I'm only wary about changing the behavior of the current and having
> that regress applications. I'm hoping you and Aneesh can shed light on
> this.
>

I think neither Aneesh nor myself are going to be able to provide a
complete answer on the use of hugetlb cgroup today, anybody could be using
it without our knowledge and that opens up the possibility that combining
the limits would adversely affect a real system configuration.

If that is a possibility, I think we need to do some due diligence and try
to deprecate allocation limits if possible. One of the benefits to
separate limits is that we can make reasonable steps to deprecating the
actual allocation limits, if possible: we could add warnings about the
deprecation of allocation limits and see if anybody complains.

That could take the form of two separate limits or a tunable in the root
hugetlb cgroup that defines whether the limits are for allocation or
reservation.

Combining them in the first pass seems to be very risky and could cause
pain for users that will not detect this during an rc cycle and will
report the issue only when their distro gets it. Then we are left with no
alternative other than stable backports and the separation of the limits
anyway.