]> www.infradead.org Git - users/jedix/linux-maple.git/commit
s390/mm: Add cond_resched() to cmm_alloc/free_pages()
authorGerald Schaefer <gerald.schaefer@linux.ibm.com>
Mon, 2 Sep 2024 12:02:19 +0000 (14:02 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Thu, 5 Sep 2024 13:17:23 +0000 (15:17 +0200)
commit131b8db78558120f58c5dc745ea9655f6b854162
tree8883d6c5152c82831515d3e58ae522bb09cf5772
parent0114009953c119021870c42c778b251440a93844
s390/mm: Add cond_resched() to cmm_alloc/free_pages()

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>
arch/s390/mm/cmm.c