mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Isolate code specific to Linux in cmd/
Use sys.platform to choose the correct implementation of functions and values of variables for the platform being run on. Reword some comments to avoid describing implementation details in the wrong places. Reviewed-by: Kjeld Schouten <kjeld@schouten-lebbing.nl> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Jorgen Lundman <lundman@lundman.net> Signed-off-by: Ryan Moeller <ryan@ixsystems.com> Closes #9561
This commit is contained in:
committed by
Brian Behlendorf
parent
6c7023a532
commit
2f1ca8a32a
@@ -55,6 +55,30 @@ from subprocess import Popen, PIPE
|
||||
from decimal import Decimal as D
|
||||
|
||||
|
||||
if sys.platform.startswith('linux'):
|
||||
|
||||
def load_kstats(namespace):
|
||||
"""Collect information on a specific subsystem of the ARC"""
|
||||
|
||||
kstat = 'kstat.zfs.misc.%s.%%s' % namespace
|
||||
path = '/proc/spl/kstat/zfs/%s' % namespace
|
||||
with open(path) as f:
|
||||
entries = [line.strip().split() for line in f][2:] # Skip header
|
||||
return [(kstat % name, D(value)) for name, _, value in entries]
|
||||
|
||||
def load_tunables():
|
||||
basepath = '/sys/module/zfs/parameters'
|
||||
tunables = {}
|
||||
for name in os.listdir(basepath):
|
||||
if not name:
|
||||
continue
|
||||
path = '%s/%s' % (basepath, name)
|
||||
with open(path) as f:
|
||||
value = f.read()
|
||||
tunables[name] = value.strip()
|
||||
return tunables
|
||||
|
||||
|
||||
show_tunable_descriptions = False
|
||||
alternate_tunable_layout = False
|
||||
|
||||
@@ -77,15 +101,6 @@ def get_Kstat():
|
||||
of the same name.
|
||||
"""
|
||||
|
||||
def load_kstats(namespace):
|
||||
"""Collect information on a specific subsystem of the ARC"""
|
||||
|
||||
kstat = 'kstat.zfs.misc.%s.%%s' % namespace
|
||||
path = '/proc/spl/kstat/zfs/%s' % namespace
|
||||
with open(path) as f:
|
||||
entries = [line.strip().split() for line in f][2:] # Skip header
|
||||
return [(kstat % name, D(value)) for name, _, value in entries]
|
||||
|
||||
Kstat = {}
|
||||
Kstat.update(load_kstats('arcstats'))
|
||||
Kstat.update(load_kstats('zfetchstats'))
|
||||
@@ -917,18 +932,6 @@ def _tunable_summary(Kstat):
|
||||
global show_tunable_descriptions
|
||||
global alternate_tunable_layout
|
||||
|
||||
def load_tunables():
|
||||
basepath = '/sys/module/zfs/parameters'
|
||||
tunables = {}
|
||||
for name in os.listdir(basepath):
|
||||
if not name:
|
||||
continue
|
||||
path = '%s/%s' % (basepath, name)
|
||||
with open(path) as f:
|
||||
value = f.read()
|
||||
tunables[name] = value.strip()
|
||||
return tunables
|
||||
|
||||
tunables = load_tunables()
|
||||
descriptions = {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user