From 25e44a17fff45d4d8443ed2b065572d4a440a267 Mon Sep 17 00:00:00 2001 From: Ryan Moeller Date: Thu, 8 Oct 2020 12:40:23 -0400 Subject: Make dbufstat work on FreeBSD With procfs_list kstats implemented for FreeBSD, dbufs are now exposed as kstat.zfs.misc.dbufs. On FreeBSD, dbufstats can use the sysctl instead of procfs when no input file has been given. Enable the dbufstats tests on FreeBSD. Reviewed-by: Brian Behlendorf Signed-off-by: Ryan Moeller Closes #11008 --- cmd/dbufstat/dbufstat.in | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/dbufstat/dbufstat.in b/cmd/dbufstat/dbufstat.in index 98eb79057..1d4eb39d7 100755 --- a/cmd/dbufstat/dbufstat.in +++ b/cmd/dbufstat/dbufstat.in @@ -113,6 +113,21 @@ cmd = ("Usage: dbufstat [-bdhnrtvx] [-i file] [-f fields] [-o file] " raw = 0 +if sys.platform.startswith("freebsd"): + import io + # Requires py-sysctl on FreeBSD + import sysctl + + def default_ifile(): + dbufs = sysctl.filter("kstat.zfs.misc.dbufs")[0].value + sys.stdin = io.StringIO(dbufs) + return "-" + +elif sys.platform.startswith("linux"): + def default_ifile(): + return "/proc/spl/kstat/zfs/dbufs" + + def print_incompat_helper(incompat): cnt = 0 for key in sorted(incompat): @@ -645,7 +660,7 @@ def main(): sys.exit(1) if not ifile: - ifile = '/proc/spl/kstat/zfs/dbufs' + ifile = default_ifile() if ifile is not "-": try: -- cgit v1.2.3