On Wed, 11 Dec 2019, Davidlohr Bueso wrote:
Instead, just use a workqueue and do the free_huge_page() in regular task context.
Hmm so this is done unconditionally, perhaps we want to do this _only_ under irq just to avoid any workqueue overhead in the common case? if (unlikely(in_interrupt()) { workqueue free_huge_page } else { normal free_huge_page } Thanks, Davidlohr