HomeFreeBSD

ARC: Cache arc_c value during arc_evict()

Description

ARC: Cache arc_c value during arc_evict()

Since arc_evict() run can take some time, arc_c change during it
may result in undesired shift in ARC states balance. Primarily in
case of arc_c reduction it may cause eviction from MFU data state
despite its being below the target already. Instead we should
evict as originally planned and if needed do another round after.

Reviewed-by: Theera K. <tkittich@hotmail.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #16576
Closes #16605

Details

Provenance
mavAuthored on Oct 4 2024, 5:56 PM
GitHub <noreply@github.com>Committed on Oct 4 2024, 5:56 PM
Parents
rG0d77e738e65d: Defer resilver only when progress is above a threshold
Branches
Unknown
Tags
Unknown