all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH zfsonlinux] arcstat/arc_summary: workaround for stats only present with cache device
@ 2021-11-11 17:17 Stoiko Ivanov
  2021-11-11 17:22 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Stoiko Ivanov @ 2021-11-11 17:17 UTC (permalink / raw)
  To: pve-devel

This commit updates Thomas' patch to deal with a 2.0 kernel module
with 2.1 arc_summary/arcstat

Tested by adding a cache-device to a zpool and running both commands
to verify no KeyError exception is thrown.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
I hope the fixup in the patch and commit-log above my S-o-b tag is ok
- else feel free to adapt (can also gladly resend)

 ...-guard-access-to-l2arc-MFU-MRU-stats.patch | 63 +++++++++++++++++--
 1 file changed, 58 insertions(+), 5 deletions(-)

diff --git a/debian/patches/0011-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch b/debian/patches/0011-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
index ead0943c..6a704848 100644
--- a/debian/patches/0011-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
+++ b/debian/patches/0011-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
@@ -15,13 +15,18 @@ should be better to show some possible wrong data for new stat-keys
 than throwing an exception.
 
 Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
+
+also move l2_mfu_asize  l2_mru_asize l2_prefetch_asize
+l2_bufc_data_asize l2_bufc_metadata_asize to .get accessor
+(these are only present with a cache device in the pool)
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
 ---
- cmd/arc_summary/arc_summary3 | 8 ++++----
- cmd/arcstat/arcstat.in       | 4 ++--
- 2 files changed, 6 insertions(+), 6 deletions(-)
+ cmd/arc_summary/arc_summary3 | 28 ++++++++++++++--------------
+ cmd/arcstat/arcstat.in       | 14 +++++++-------
+ 2 files changed, 21 insertions(+), 21 deletions(-)
 
 diff --git a/cmd/arc_summary/arc_summary3 b/cmd/arc_summary/arc_summary3
-index 7b28012ed..0a81b2bc7 100755
+index 7b28012ed..fe6a6d9e2 100755
 --- a/cmd/arc_summary/arc_summary3
 +++ b/cmd/arc_summary/arc_summary3
 @@ -617,13 +617,13 @@ def section_arc(kstats_dict):
@@ -42,8 +47,39 @@ index 7b28012ed..0a81b2bc7 100755
      prt_i1('L2 ineligible evictions:',
             f_bytes(arc_stats['evict_l2_ineligible']))
      print()
+@@ -765,20 +765,20 @@ def section_l2arc(kstats_dict):
+            f_perc(arc_stats['l2_hdr_size'], arc_stats['l2_size']),
+            f_bytes(arc_stats['l2_hdr_size']))
+     prt_i2('MFU allocated size:',
+-           f_perc(arc_stats['l2_mfu_asize'], arc_stats['l2_asize']),
+-           f_bytes(arc_stats['l2_mfu_asize']))
++           f_perc(arc_stats.get('l2_mfu_asize', 0), arc_stats['l2_asize']),
++           f_bytes(arc_stats.get('l2_mfu_asize', 0))) # 2.0 module compat
+     prt_i2('MRU allocated size:',
+-           f_perc(arc_stats['l2_mru_asize'], arc_stats['l2_asize']),
+-           f_bytes(arc_stats['l2_mru_asize']))
++           f_perc(arc_stats.get('l2_mru_asize', 0), arc_stats['l2_asize']),
++           f_bytes(arc_stats.get('l2_mru_asize', 0))) # 2.0 module compat
+     prt_i2('Prefetch allocated size:',
+-           f_perc(arc_stats['l2_prefetch_asize'], arc_stats['l2_asize']),
+-           f_bytes(arc_stats['l2_prefetch_asize']))
++           f_perc(arc_stats.get('l2_prefetch_asize', 0), arc_stats['l2_asize']),
++           f_bytes(arc_stats.get('l2_prefetch_asize',0))) # 2.0 module compat
+     prt_i2('Data (buffer content) allocated size:',
+-           f_perc(arc_stats['l2_bufc_data_asize'], arc_stats['l2_asize']),
+-           f_bytes(arc_stats['l2_bufc_data_asize']))
++           f_perc(arc_stats.get('l2_bufc_data_asize', 0), arc_stats['l2_asize']),
++           f_bytes(arc_stats.get('l2_bufc_data_asize', 0))) # 2.0 module compat
+     prt_i2('Metadata (buffer content) allocated size:',
+-           f_perc(arc_stats['l2_bufc_metadata_asize'], arc_stats['l2_asize']),
+-           f_bytes(arc_stats['l2_bufc_metadata_asize']))
++           f_perc(arc_stats.get('l2_bufc_metadata_asize', 0), arc_stats['l2_asize']),
++           f_bytes(arc_stats.get('l2_bufc_metadata_asize', 0))) # 2.0 module compat
+ 
+     print()
+     prt_1('L2ARC breakdown:', f_hits(l2_access_total))
 diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in
-index cd9a803a2..6878419e7 100755
+index cd9a803a2..ea45dc602 100755
 --- a/cmd/arcstat/arcstat.in
 +++ b/cmd/arcstat/arcstat.in
 @@ -482,8 +482,8 @@ def calculate():
@@ -57,3 +93,20 @@ index cd9a803a2..6878419e7 100755
      v["el2inel"] = d["evict_l2_ineligible"] // sint
      v["mtxmis"] = d["mutex_miss"] // sint
  
+@@ -498,11 +498,11 @@ def calculate():
+         v["l2size"] = cur["l2_size"]
+         v["l2bytes"] = d["l2_read_bytes"] // sint
+ 
+-        v["l2pref"] = cur["l2_prefetch_asize"]
+-        v["l2mfu"] = cur["l2_mfu_asize"]
+-        v["l2mru"] = cur["l2_mru_asize"]
+-        v["l2data"] = cur["l2_bufc_data_asize"]
+-        v["l2meta"] = cur["l2_bufc_metadata_asize"]
++        v["l2pref"] = cur.get("l2_prefetch_asize", 0)
++        v["l2mfu"] = cur.get("l2_mfu_asize", 0)
++        v["l2mru"] = cur.get("l2_mru_asize", 0)
++        v["l2data"] = cur.get("l2_bufc_data_asize", 0)
++        v["l2meta"] = cur.get("l2_bufc_metadata_asize", 0)
+         v["l2pref%"] = 100 * v["l2pref"] // v["l2asize"]
+         v["l2mfu%"] = 100 * v["l2mfu"] // v["l2asize"]
+         v["l2mru%"] = 100 * v["l2mru"] // v["l2asize"]
-- 
2.30.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH zfsonlinux] arcstat/arc_summary: workaround for stats only present with cache device
  2021-11-11 17:17 [pve-devel] [PATCH zfsonlinux] arcstat/arc_summary: workaround for stats only present with cache device Stoiko Ivanov
@ 2021-11-11 17:22 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2021-11-11 17:22 UTC (permalink / raw)
  To: Proxmox VE development discussion, Stoiko Ivanov

On 11.11.21 18:17, Stoiko Ivanov wrote:
> This commit updates Thomas' patch to deal with a 2.0 kernel module
> with 2.1 arc_summary/arcstat
> 
> Tested by adding a cache-device to a zpool and running both commands
> to verify no KeyError exception is thrown.
> 
> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
> ---
> I hope the fixup in the patch and commit-log above my S-o-b tag is ok
> - else feel free to adapt (can also gladly resend)

top-notch! 

>  ...-guard-access-to-l2arc-MFU-MRU-stats.patch | 63 +++++++++++++++++--
>  1 file changed, 58 insertions(+), 5 deletions(-)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-11-11 17:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-11 17:17 [pve-devel] [PATCH zfsonlinux] arcstat/arc_summary: workaround for stats only present with cache device Stoiko Ivanov
2021-11-11 17:22 ` [pve-devel] applied: " Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal