Skip to content

Commit f0baaa3

Browse files
authored
arcstat: prevent ZeroDivisionError when L2ARC becomes empty
Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Richard Yao <[email protected]> Reviewed-by: Alexander Motin <[email protected]> Reviewed-by: George Melikov <[email protected]> Signed-off-by: Ameer Hamza <[email protected]> Closes #17348
1 parent 841be1d commit f0baaa3

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

cmd/arcstat.in

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -735,13 +735,14 @@ def calculate():
735735
v[group["percent"]] if v[group["percent"]] > 0 else 0
736736

737737
if l2exist:
738+
l2asize = cur["l2_asize"]
738739
v["l2hits"] = d["l2_hits"] / sint
739740
v["l2miss"] = d["l2_misses"] / sint
740741
v["l2read"] = v["l2hits"] + v["l2miss"]
741742
v["l2hit%"] = 100 * v["l2hits"] / v["l2read"] if v["l2read"] > 0 else 0
742743

743744
v["l2miss%"] = 100 - v["l2hit%"] if v["l2read"] > 0 else 0
744-
v["l2asize"] = cur["l2_asize"]
745+
v["l2asize"] = l2asize
745746
v["l2size"] = cur["l2_size"]
746747
v["l2bytes"] = d["l2_read_bytes"] / sint
747748
v["l2wbytes"] = d["l2_write_bytes"] / sint
@@ -751,11 +752,11 @@ def calculate():
751752
v["l2mru"] = cur["l2_mru_asize"]
752753
v["l2data"] = cur["l2_bufc_data_asize"]
753754
v["l2meta"] = cur["l2_bufc_metadata_asize"]
754-
v["l2pref%"] = 100 * v["l2pref"] / v["l2asize"]
755-
v["l2mfu%"] = 100 * v["l2mfu"] / v["l2asize"]
756-
v["l2mru%"] = 100 * v["l2mru"] / v["l2asize"]
757-
v["l2data%"] = 100 * v["l2data"] / v["l2asize"]
758-
v["l2meta%"] = 100 * v["l2meta"] / v["l2asize"]
755+
v["l2pref%"] = 100 * v["l2pref"] / l2asize if l2asize > 0 else 0
756+
v["l2mfu%"] = 100 * v["l2mfu"] / l2asize if l2asize > 0 else 0
757+
v["l2mru%"] = 100 * v["l2mru"] / l2asize if l2asize > 0 else 0
758+
v["l2data%"] = 100 * v["l2data"] / l2asize if l2asize > 0 else 0
759+
v["l2meta%"] = 100 * v["l2meta"] / l2asize if l2asize > 0 else 0
759760

760761
v["grow"] = 0 if cur["arc_no_grow"] else 1
761762
v["need"] = cur["arc_need_free"]

0 commit comments

Comments
 (0)