From f554293615ab6473812dd3cfe101b410f021b9fe Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Thu, 30 Aug 2018 13:42:01 +0000 Subject: [PATCH] Re-add kstat.zfs.misc.arcstats.other_size under COMPAT_FREEBSD11. It is used by a number of applications, notably top(1). Reported by: netchild Reviewed by: allanjude Approved by: re (delphij) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D16943 --- .../contrib/opensolaris/uts/common/fs/zfs/arc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c index b825a4c92e9c..1387925c4607 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c @@ -661,6 +661,12 @@ typedef struct arc_stats { * Number of bytes consumed by bonus buffers. */ kstat_named_t arcstat_bonus_size; +#if defined(__FreeBSD__) && defined(COMPAT_FREEBSD11) + /* + * Sum of the previous three counters, provided for compatibility. + */ + kstat_named_t arcstat_other_size; +#endif /* * Total number of bytes consumed by ARC buffers residing in the * arc_anon state. This includes *all* buffers in the arc_anon @@ -875,6 +881,9 @@ static arc_stats_t arc_stats = { { "dbuf_size", KSTAT_DATA_UINT64 }, { "dnode_size", KSTAT_DATA_UINT64 }, { "bonus_size", KSTAT_DATA_UINT64 }, +#if defined(__FreeBSD__) && defined(COMPAT_FREEBSD11) + { "other_size", KSTAT_DATA_UINT64 }, +#endif { "anon_size", KSTAT_DATA_UINT64 }, { "anon_evictable_data", KSTAT_DATA_UINT64 }, { "anon_evictable_metadata", KSTAT_DATA_UINT64 }, @@ -6825,6 +6834,11 @@ arc_kstat_update(kstat_t *ksp, int rw) ARCSTAT(arcstat_bonus_size) = aggsum_value(&astat_bonus_size); ARCSTAT(arcstat_dnode_size) = aggsum_value(&astat_dnode_size); ARCSTAT(arcstat_dbuf_size) = aggsum_value(&astat_dbuf_size); +#if defined(__FreeBSD__) && defined(COMPAT_FREEBSD11) + ARCSTAT(arcstat_other_size) = aggsum_value(&astat_bonus_size) + + aggsum_value(&astat_dnode_size) + + aggsum_value(&astat_dbuf_size); +#endif ARCSTAT(arcstat_l2_hdr_size) = aggsum_value(&astat_l2_hdr_size); }