Re: [RFC PATCH 5/8] hugetlb: change free_pool_huge_page to remove_pool_huge_page

From: Michal Hocko
Date: Wed Mar 24 2021 - 12:51:20 EST


On Wed 24-03-21 09:38:17, Mike Kravetz wrote:
> On 3/24/21 1:40 AM, Michal Hocko wrote:
> > On Tue 23-03-21 18:03:07, Mike Kravetz wrote:
> > [...]
> >> Since you brought up cgroups ... what is your opinion on lock hold time
> >> in hugetlb_cgroup_css_offline? We could potentially be calling
> >> hugetlb_cgroup_move_parent for every hugetlb page while holding the lock
> >> with interrupts disabled.
> >
> > I am not familiar with hugetlb cgroup code TBH. But from a quick look
> > there is not much of heavy lifting there. If we find out that this is
> > really visible we can do the lock dance with cond_resched and retry with
> > the iteration again. Or is there any strong reason to process the list
> > in a single go?
>
> AFAICT, the primary reason for processing the list in a single go is
> that the lock protects the list. If you drop the lock, the list can
> change ...
>
> I have come up with a (not so pretty) way of processing the list in
> batches of pages. But, I dod not want to introduce that if there is no
> need. Perhaps just take a wait and see approach for now.
>
> I'll see if I can come up with some timing information to determine
> if/when we may have an issue.

I wouldn't bother at this stage. This can be done on top.
--
Michal Hocko
SUSE Labs