diff options
author | 2024-09-02 14:02:19 +0200 | |
---|---|---|
committer | 2024-09-05 15:17:23 +0200 | |
commit | 131b8db78558120f58c5dc745ea9655f6b854162 (patch) | |
tree | 8883d6c5152c82831515d3e58ae522bb09cf5772 /rust/helpers/workqueue.c | |
parent | s390/pai_ext: Update PAI extension 1 counters (diff) | |
download | wireguard-linux-131b8db78558120f58c5dc745ea9655f6b854162.tar.xz wireguard-linux-131b8db78558120f58c5dc745ea9655f6b854162.zip |
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>
Diffstat (limited to 'rust/helpers/workqueue.c')
0 files changed, 0 insertions, 0 deletions