66 lines
2.9 KiB
Diff
66 lines
2.9 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||
|
Date: Wed, 10 Nov 2021 08:00:13 +0100
|
||
|
Subject: [PATCH] arc stat/summary: guard access to l2arc MFU/MRU stats
|
||
|
|
||
|
In 2.1 commit 085321621e79a75bea41c2b6511da6ebfbf2ba0a added printing
|
||
|
MFU/MRU stats, but those keys are not available in 2.0, meaning it
|
||
|
may break there due to python bailing out on the dict access.
|
||
|
|
||
|
simply guard those problematic usage line by checking the
|
||
|
availability of the respective keys in the dict first to avoid the
|
||
|
pythonic exception, not much more we can do.
|
||
|
|
||
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||
|
---
|
||
|
cmd/arc_summary/arc_summary3 | 18 ++++++++++--------
|
||
|
cmd/arcstat/arcstat.in | 6 ++++--
|
||
|
2 files changed, 14 insertions(+), 10 deletions(-)
|
||
|
|
||
|
diff --git a/cmd/arc_summary/arc_summary3 b/cmd/arc_summary/arc_summary3
|
||
|
index 7b28012ed..1acedc884 100755
|
||
|
--- a/cmd/arc_summary/arc_summary3
|
||
|
+++ b/cmd/arc_summary/arc_summary3
|
||
|
@@ -616,14 +616,16 @@ def section_arc(kstats_dict):
|
||
|
f_hits(arc_stats['evict_l2_skip']))
|
||
|
prt_i1('L2 cached evictions:', f_bytes(arc_stats['evict_l2_cached']))
|
||
|
prt_i1('L2 eligible evictions:', f_bytes(arc_stats['evict_l2_eligible']))
|
||
|
- prt_i2('L2 eligible MFU evictions:',
|
||
|
- f_perc(arc_stats['evict_l2_eligible_mfu'],
|
||
|
- arc_stats['evict_l2_eligible']),
|
||
|
- f_bytes(arc_stats['evict_l2_eligible_mfu']))
|
||
|
- prt_i2('L2 eligible MRU evictions:',
|
||
|
- f_perc(arc_stats['evict_l2_eligible_mru'],
|
||
|
- arc_stats['evict_l2_eligible']),
|
||
|
- f_bytes(arc_stats['evict_l2_eligible_mru']))
|
||
|
+ if 'evict_l2_eligible_mfu' in arc_stats:
|
||
|
+ prt_i2('L2 eligible MFU evictions:',
|
||
|
+ f_perc(arc_stats['evict_l2_eligible_mfu'],
|
||
|
+ arc_stats['evict_l2_eligible']),
|
||
|
+ f_bytes(arc_stats['evict_l2_eligible_mfu']))
|
||
|
+ if 'evict_l2_eligible_mru' in arc_stats:
|
||
|
+ prt_i2('L2 eligible MRU evictions:',
|
||
|
+ f_perc(arc_stats['evict_l2_eligible_mru'],
|
||
|
+ arc_stats['evict_l2_eligible']),
|
||
|
+ f_bytes(arc_stats['evict_l2_eligible_mru']))
|
||
|
prt_i1('L2 ineligible evictions:',
|
||
|
f_bytes(arc_stats['evict_l2_ineligible']))
|
||
|
print()
|
||
|
diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in
|
||
|
index 9e7c52a6c..b236ac333 100755
|
||
|
--- a/cmd/arcstat/arcstat.in
|
||
|
+++ b/cmd/arcstat/arcstat.in
|
||
|
@@ -482,8 +482,10 @@ def calculate():
|
||
|
v["el2skip"] = d["evict_l2_skip"] / sint
|
||
|
v["el2cach"] = d["evict_l2_cached"] / sint
|
||
|
v["el2el"] = d["evict_l2_eligible"] / sint
|
||
|
- v["el2mfu"] = d["evict_l2_eligible_mfu"] / sint
|
||
|
- v["el2mru"] = d["evict_l2_eligible_mru"] / sint
|
||
|
+ if "evict_l2_eligible_mfu" in v:
|
||
|
+ v["el2mfu"] = d["evict_l2_eligible_mfu"] / sint
|
||
|
+ if "evict_l2_eligible_mru" in v:
|
||
|
+ v["el2mru"] = d["evict_l2_eligible_mru"] / sint
|
||
|
v["el2inel"] = d["evict_l2_ineligible"] / sint
|
||
|
v["mtxmis"] = d["mutex_miss"] / sint
|
||
|
|