s390/mm: Add cond_resched() to cmm_alloc/free_pages()
[ Upstream commit 131b8db78558120f58c5dc745ea9655f6b854162 ] Adding/removing large amount of pages at once to/from the CMM balloon can result in rcu_sched stalls or workqueue lockups, because of busy looping w/o cond_resched(). Prevent this by adding a cond_resched(). cmm_free_pages() holds a spin_lock while looping, so it cannot be added directly to the existing loop. Instead, introduce a wrapper function that operates on maximum 256 pages at once, and add it there. Signed-off-by:Gerald Schaefer <gerald.schaefer@linux.ibm.com> Reviewed-by:
Heiko Carstens <hca@linux.ibm.com> Signed-off-by:
Heiko Carstens <hca@linux.ibm.com> Signed-off-by:
Sasha Levin <sashal@kernel.org> (cherry picked from commit a12b82d741350b89b4df55fa8a4e5c0579d919cb) Signed-off-by:
Vegard Nossum <vegard.nossum@oracle.com> Signed-off-by:
Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Loading
Please register or sign in to comment