]> granicus.if.org Git - zfs/commitdiff
Don't count embedded bps in read stats
authorTom Caputi <tcaputi@datto.com>
Sat, 24 Mar 2018 04:35:19 +0000 (00:35 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 24 Mar 2018 04:35:19 +0000 (21:35 -0700)
Currently, ZFS tracks statistics about calls to arc_read()
via the /proc/spl/kstat/zfs/<pool>/reads file for debugging.
Unfortunately, this file currently counts embedded bps as
disk reads since they are technically processed by the ZIO
layer. This pollutes the log since the ARC will never cache
embedded bps. This patch  corrects this issue by preventing
the logging of embedded bp reads.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #7334

module/zfs/arc.c

index 9c0c5513d1212314dd4acdf260d321e61d085034..350aafa1f80ca4ceeff599247a9d1ff0c8a069f5 100644 (file)
@@ -6346,7 +6346,9 @@ top:
        }
 
 out:
-       spa_read_history_add(spa, zb, *arc_flags);
+       /* embedded bps don't actually go to disk */
+       if (!BP_IS_EMBEDDED(bp))
+               spa_read_history_add(spa, zb, *arc_flags);
        return (rc);
 }