On Wed 14-06-17 18:12:06, David Rientjes wrote: > On Thu, 8 Jun 2017, Michal Hocko wrote: > > > collapse_huge_page > > pte_offset_map > > kmap_atomic > > kmap_atomic_prot > > preempt_disable > > __collapse_huge_page_copy > > pte_unmap > > kunmap_atomic > > __kunmap_atomic > > preempt_enable > > > > I suspect, so cond_resched seems indeed inappropriate on 32b systems. > > > > Seems to be an issue for i386 and arm with ARM_LPAE. I'm slightly > surprised we can get away with __collapse_huge_page_swapin() for > VM_FAULT_RETRY, unless that hasn't been encountered yet. I do not see what you mean here or how is it related. __collapse_huge_page_swapin is called outside of pte_offset_map/pte_unmap section > I think the cond_resched() in __collapse_huge_page_copy() could be > done only for !in_atomic() if we choose. in_atomic() depends on having PREEMPT_COUNT enabled to work properly AFAIR. I haven't double checked and something might have changed since I've looked the last time. -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>