On Mon, Dec 21, 2020 at 10:14 PM Oscar Salvador <osalvador@xxxxxxx> wrote: > > On Mon, Dec 21, 2020 at 07:07:18PM +0800, Muchun Song wrote: > > > The above implies that update_and_free_page() is __always__ called from a > > > non-task context, but that is not always the case? > > > > IIUC, here is always the case. > > I might be missing something obvious, so bear with me. > > I guess you are refering to the call __free_huge_page()->update_and_free_page(). > AFAICS, free_huge_page might call __free_huge_page right away when in task > context, and so, we would be calling update_and_free in a task context as well. Yeah. You are right. I mean the call __free_huge_page()->update_and_free_page(). Because update_and_free_page is called under hugetlb_lock, it is non-task context, right? > > Or are you referring to the other callers? > > -- > Oscar Salvador > SUSE L3 -- Yours, Muchun