When handle MADV_WILLNEED in madvise(), the soflockup may be occurred in swapin_walk_pmd_entry() if swapin lots of memory on slow device, add a cond_resched() into it to avoid the possible softlockup. Fixes: 1998cc048901 ("mm: make madvise(MADV_WILLNEED) support swap file prefetch") Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> --- mm/madvise.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/madvise.c b/mm/madvise.c index b913ba6efc10..fea589d8a2fb 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -226,6 +226,7 @@ static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start, put_page(page); } swap_read_unplug(splug); + cond_resched(); return 0; } -- 2.35.3