HomeFreeBSD

Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread

Description

Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread

Avoid calling dbuf_evict_one() from memory reclaim contexts (e.g. Linux
kswapd, FreeBSD pagedaemon). This prevents deadlock caused by reclaim
threads waiting for the dbuf hash lock in the call sequence:
dbuf_evict_one -> dbuf_destroy -> arc_buf_destroy

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Kaitlin Hoang <kthoang@amazon.com>
Closes #17561

Details

Provenance
khoang98 <43098119+khoang98@users.noreply.github.com>Authored on Aug 1 2025, 11:47 PM
GitHub <noreply@github.com>Committed on Aug 1 2025, 11:47 PM
Parents
rG1aec627c60fe: linux/atomic: fill out API for atomic pointer ops
Branches
Unknown
Tags
Unknown