git: 1c090bf880bf - stable/14 - top: Avoid printing a blank line when the ZFS ARC is empty
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 25 Jan 2024 15:02:33 UTC
The branch stable/14 has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=1c090bf880bf8879f75e4cd4b93c9a277faef2fa
commit 1c090bf880bf8879f75e4cd4b93c9a277faef2fa
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2024-01-11 14:58:31 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2024-01-25 14:57:12 +0000
top: Avoid printing a blank line when the ZFS ARC is empty
PR: 275994
MFC after: 2 weeks
(cherry picked from commit 1f62718d8ba26d813d8c2e826ac5f4caee4c6730)
---
usr.bin/top/machine.c | 20 +++++++++++++++-----
1 file 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);