HomeFreeBSD

Update ABD stats for linear page Linux

Description

Update ABD stats for linear page Linux

a10e552 updated abd_free_linear_page() to no longer call
abd_update_scatter_stat(). This meant that linear pages that were not
attached to Direct I/O requests were not doing waste accounting for the
ARC. This led to performance issues due to incorrect ARC accounting that
resulted in 100% of CPU time being spent in arc_evict() during prolonged
I/O workloads with the ARC.

The call to abd_update_scatter_stats() is now conditionally called in
abd_free_linear_page() when the ABD is not from a Direct I/O request.

Reviewed-by: Mark Maybee <mmaybee@delphix.com>
Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Brian Atkinson <batkinson@lanl.gov>
Closes #16729

Details

Provenance
Brian Atkinson <batkinson@lanl.gov>Authored on Thu, Nov 7, 7:11 PM
GitHub <noreply@github.com>Committed on Thu, Nov 7, 7:11 PM
Parents
rG5945676bcc5d: ZFS send should use spill block prefetched from send_reader_thread
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG187f93137265: Update ABD stats for linear page Linux (authored by Brian Atkinson <batkinson@lanl.gov>).Thu, Nov 7, 7:11 PM