diff options
author | Tim Chase <[email protected]> | 2019-02-04 11:33:30 -0600 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2019-02-04 09:33:30 -0800 |
commit | 0902c4577f4ba2a3687549f7d5d19718a275fb52 (patch) | |
tree | 9ebbb7f1663f308167df67dd15e4491df020c3e1 /module/zfs/zcp.c | |
parent | 96342996577aac97fc9eaa0c0a9f74377dc9e336 (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/zcp.c')
0 files changed, 0 insertions, 0 deletions