summaryrefslogtreecommitdiffstats
path: root/module/zfs/spa_misc.c
diff options
context:
space:
mode:
authorTim Chase <[email protected]>2019-02-04 11:33:30 -0600
committerBrian Behlendorf <[email protected]>2019-02-04 09:33:30 -0800
commit0902c4577f4ba2a3687549f7d5d19718a275fb52 (patch)
tree9ebbb7f1663f308167df67dd15e4491df020c3e1 /module/zfs/spa_misc.c
parent96342996577aac97fc9eaa0c0a9f74377dc9e336 (diff)
Fix ARC stats for embedded blkptrs
Re-factor arc_read() to better account for embedded data blkptrs. Previously, reading the payload from an embedded blkptr would cause arcstats such as demand_metadata_misses to be bumped when there was actually no cache "miss" because the data are already available in the blkptr. The following test procedure was used to demonstrate the problem: zpool create tank ... zfs create -o compression=lz4 tank/fs echo blah > /tank/fs/blah stat /tank/fs/blah grep 'meta.*mis' /proc/spl/kstat/zfs/arcstats and repeating the last two steps to watch the metadata miss counter increment. This can also be demonstrated via the zfs_arc_miss DTRACE4 probe in arc_read(). Reviewed-by: loli10K <[email protected]> Reviewed-by: George Wilson <[email protected]> Reviewed-by: Matt Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: George Melikov <[email protected]> Signed-off-by: Tim Chase <[email protected]> Closes #8319
Diffstat (limited to 'module/zfs/spa_misc.c')
0 files changed, 0 insertions, 0 deletions