From: z00281421 <z00281421@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: z00281421 <z00281421@xxxxxxxxxxxxxxxxxxxx> --- mm/vmalloc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 91f44e7..e9c9c04 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -661,13 +661,18 @@ static void __purge_vmap_area_lazy(unsigned long *start, unsigned long *end, if (nr || force_flush) flush_tlb_kernel_range(*start, *end); + spin_unlock(&purge_lock); + if (nr) { + unsigned char batch = 0; spin_lock(&vmap_area_lock); - llist_for_each_entry_safe(va, n_va, valist, purge_list) + llist_for_each_entry_safe(va, n_va, valist, purge_list) { __free_vmap_area(va); + if (!batch++) + cond_resched_lock(&vmap_area_lock); + } spin_unlock(&vmap_area_lock); } - spin_unlock(&purge_lock); } /* -- 1.7.9.5 -- 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>