On 12/17/19 1:31 AM, Michal Hocko wrote: > On Mon 16-12-19 20:25:08, Waiman Long wrote: > [...] >> Both the hugetbl_lock and the subpool lock can be acquired in >> free_huge_page(). One way to solve the problem is to make both locks >> irq-safe. > > Please document why we do not take this, quite natural path and instead > we have to come up with an elaborate way instead. I believe the primary > motivation is that some operations under those locks are quite > expensive. Please add that to the changelog and ideally to the code as > well. We probably want to fix those anyway and then this would be a > temporary workaround. We may have talked in the past about how hugetlbfs locking is not ideal. However, there are many things in hugetlbfs that are not ideal. :( The thought was to avoid making changes unless they showed up as real problems. Looks like the locking is now a real issue. I'll start work on restructuring at least this part of the locking. But, let's move forward with the deferred freeing approach until that is ready. -- Mike Kravetz