HomeFreeBSD

Non-l2arc pool reads shouldn't be l2arc misses

Description

Non-l2arc pool reads shouldn't be l2arc misses

The current l2_misses accounting behavior treats all reads to pools
without a configured l2arc as an l2arc miss, IFF there is at least
one other pool on the system which does have an l2arc configured.

This makes it extremely hard to tune for an improved l2arc hit/miss
ratio because this ratio will be modulated by reads from pools which
do not (and should not) have l2arc devices; its upper limit will
depend on the ratio of reads from l2arc'd pools and non-l2arc'd pools.

This PR prevents ARC reads affecting l2arc stats (n.b. l2_misses is
the only relevant one) where the target spa doesn't have an l2arc.

Includes new test - l2arc_l2miss_pos.ksh

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Amanakis <gamanakis@gmail.com>
Signed-off-by: Adam Moss <c@yotes.com>
Closes #10921

Details

Provenance
Adam D. Moss <c@yotes.com>Authored on Oct 20 2020, 6:39 PM
GitHub <noreply@github.com>Committed on Oct 20 2020, 6:39 PM
Parents
rG241c62bdd7fb: Makefile.bsd: remove directory that no longer exists
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG666aa69f32ff: Non-l2arc pool reads shouldn't be l2arc misses (authored by Adam D. Moss <c@yotes.com>).Oct 20 2020, 6:39 PM