Re: [RFC PATCH] mm/hugetlb: Avoid soft lockup in set_max_huge_pages()

From: Dave Hansen
Date: Wed Jul 27 2016 - 11:26:23 EST


On 07/26/2016 06:39 PM, hejianet wrote:
>>>
>> and you choose to patch both of the alloc_*() functions. Why not just
>> fix it at the common call site? Seems like that
>> spin_lock(&hugetlb_lock) could be a cond_resched_lock() which would fix
>> both cases.
> I agree to move the cond_resched() to a common site in
> set_max_huge_pages(). But do you mean the spin_lock in this while
> loop can be replaced by cond_resched_lock? IIUC, cond_resched_lock =
> spin_unlock+cond_resched+spin_lock. So could you please explain more
> details about it? Thanks.

Ahh, good point. A plain cond_resched() outside the lock is probably
sufficient here.