diff options
author | Mark Johnston <markj@FreeBSD.org> | 2024-01-11 14:58:31 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2024-01-25 14:58:44 +0000 |
commit | f4524aff6d66edbfb7b3f184118b0a4299c4b1af (patch) | |
tree | fe1dc16c63c13a0fc08267043c04d6d50410dae4 | |
parent | 6a7eaf04f166b141b27da70d18a737bac48fbcd4 (diff) | |
download | src-f4524aff6d66edbfb7b3f184118b0a4299c4b1af.tar.gz src-f4524aff6d66edbfb7b3f184118b0a4299c4b1af.zip |
top: Avoid printing a blank line when the ZFS ARC is empty
PR: 275994
MFC after: 2 weeks
(cherry picked from commit 1f62718d8ba26d813d8c2e826ac5f4caee4c6730)
-rw-r--r-- | usr.bin/top/machine.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/usr.bin/top/machine.c b/usr.bin/top/machine.c index b4cd29dab878..a76d77a80ce4 100644 --- a/usr.bin/top/machine.c +++ b/usr.bin/top/machine.c @@ -293,17 +293,27 @@ machine_init(struct statics *statics) size = sizeof(carc_en); if (arc_enabled && sysctlbyname("vfs.zfs.compressed_arc_enabled", &carc_en, &size, - NULL, 0) == 0 && carc_en == 1) - carc_enabled = 1; + NULL, 0) == 0 && carc_en == 1) { + uint64_t uncomp_sz; + + /* + * Don't report compression stats if no data is in the ARC. + * Otherwise, we end up printing a blank line. + */ + size = sizeof(uncomp_sz); + if (sysctlbyname("kstat.zfs.misc.arcstats.uncompressed_size", + &uncomp_sz, &size, NULL, 0) == 0 && uncomp_sz != 0) + carc_enabled = 1; + } kd = kvm_open(NULL, _PATH_DEVNULL, NULL, O_RDONLY, "kvm_open"); if (kd == NULL) return (-1); size = sizeof(nswapdev); - if (sysctlbyname("vm.nswapdev", &nswapdev, &size, NULL, - 0) == 0 && nswapdev != 0) - has_swap = 1; + if (sysctlbyname("vm.nswapdev", &nswapdev, &size, NULL, 0) == 0 && + nswapdev != 0) + has_swap = 1; GETSYSCTL("kern.ccpu", ccpu); |