On Tue, Jan 28, 2020 at 3:39 AM Michal Hocko <mhocko@xxxxxxxxxx> wrote: > > On Tue 28-01-20 02:48:57, Matthew Wilcox wrote: > > Doesn't the stack trace above indicate that we're doing migration as > > the result of an allocation in add_to_page_cache_lru()? > > Which stack trace do you refer to? Because the one above doesn't show > much more beyond mem_cgroup_iter and likewise others in this email > thread. I do not really remember any stack with lock_page on the trace. I think the page is locked in add_to_page_cache_lru() by __SetPageLocked(), as the stack trace shows __add_to_page_cache_locked(). It is not yet unlocked, as it is still looping inside try_charge(). I will write a script to see if I can find the longest time spent in reclaim as you suggested. Thanks.