CVE-2023-53151
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
15/09/2025
Last modified:
15/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
md/raid10: prevent soft lockup while flush writes<br />
<br />
Currently, there is no limit for raid1/raid10 plugged bio. While flushing<br />
writes, raid1 has cond_resched() while raid10 doesn&#39;t, and too many<br />
writes can cause soft lockup.<br />
<br />
Follow up soft lockup can be triggered easily with writeback test for<br />
raid10 with ramdisks:<br />
<br />
watchdog: BUG: soft lockup - CPU#10 stuck for 27s! [md0_raid10:1293]<br />
Call Trace:<br />
<br />
call_rcu+0x16/0x20<br />
put_object+0x41/0x80<br />
__delete_object+0x50/0x90<br />
delete_object_full+0x2b/0x40<br />
kmemleak_free+0x46/0xa0<br />
slab_free_freelist_hook.constprop.0+0xed/0x1a0<br />
kmem_cache_free+0xfd/0x300<br />
mempool_free_slab+0x1f/0x30<br />
mempool_free+0x3a/0x100<br />
bio_free+0x59/0x80<br />
bio_put+0xcf/0x2c0<br />
free_r10bio+0xbf/0xf0<br />
raid_end_bio_io+0x78/0xb0<br />
one_write_done+0x8a/0xa0<br />
raid10_end_write_request+0x1b4/0x430<br />
bio_endio+0x175/0x320<br />
brd_submit_bio+0x3b9/0x9b7 [brd]<br />
__submit_bio+0x69/0xe0<br />
submit_bio_noacct_nocheck+0x1e6/0x5a0<br />
submit_bio_noacct+0x38c/0x7e0<br />
flush_pending_writes+0xf0/0x240<br />
raid10d+0xac/0x1ed0<br />
<br />
Fix the problem by adding cond_resched() to raid10 like what raid1 did.<br />
<br />
Note that unlimited plugged bio still need to be optimized, for example,<br />
in the case of lots of dirty pages writeback, this will take lots of<br />
memory and io will spend a long time in plug, hence io latency is bad.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/00ecb6fa67c0f772290c5ea5ae8b46eefd503b83
- https://git.kernel.org/stable/c/010444623e7f4da6b4a4dd603a7da7469981e293
- https://git.kernel.org/stable/c/1d467e10507167eb6dc2c281a87675b731955d86
- https://git.kernel.org/stable/c/634daf6b2c81015cc5e28bf694a6a94a50c641cd
- https://git.kernel.org/stable/c/84a578961b2566e475bfa8740beaf0abcc781a6f
- https://git.kernel.org/stable/c/d0345f7c7dbc5d42e4e6f1db99c1c1879d7b0eb5
- https://git.kernel.org/stable/c/f45b2fa7678ab385299de345f7e85d05caea386b
- https://git.kernel.org/stable/c/fbf50184190d55f8717bd29aa9530c399be96f30



