Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Feb 2020 17:10:40 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r357453 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <202002031710.013HAe7c079466@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Mon Feb  3 17:10:40 2020
New Revision: 357453
URL: https://svnweb.freebsd.org/changeset/base/357453

Log:
  Unblock kstat.zfs.misc.dbufstats sysctls.
  
  It is not so much broken to hide it after we wasted time to collect it.
  
  MFC after:	2 weeks
  Sponsored by:	iXsystems, Inc.

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c	Mon Feb  3 17:08:11 2020	(r357452)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c	Mon Feb  3 17:10:40 2020	(r357453)
@@ -747,6 +747,10 @@ dbuf_evict_thread(void *unused __unused)
 			(void) cv_timedwait_hires(&dbuf_evict_cv,
 			    &dbuf_evict_lock, SEC2NSEC(1), MSEC2NSEC(1), 0);
 			CALLB_CPR_SAFE_END(&cpr, &dbuf_evict_lock);
+#ifdef __FreeBSD__
+			if (dbuf_ksp != NULL)
+				dbuf_ksp->ks_update(dbuf_ksp, KSTAT_READ);
+#endif
 		}
 		mutex_exit(&dbuf_evict_lock);
 
@@ -880,18 +884,10 @@ retry:
 	dbuf_cache_evict_thread = thread_create(NULL, 0, dbuf_evict_thread,
 	    NULL, 0, &p0, TS_RUN, minclsyspri);
 
-#ifdef __linux__
-	/*
-	 * XXX FreeBSD's SPL lacks KSTAT_TYPE_NAMED support - TODO 
-	 */
 	dbuf_ksp = kstat_create("zfs", 0, "dbufstats", "misc",
 	    KSTAT_TYPE_NAMED, sizeof (dbuf_stats) / sizeof (kstat_named_t),
 	    KSTAT_FLAG_VIRTUAL);
 	if (dbuf_ksp != NULL) {
-		dbuf_ksp->ks_data = &dbuf_stats;
-		dbuf_ksp->ks_update = dbuf_kstat_update;
-		kstat_install(dbuf_ksp);
-
 		for (i = 0; i < DN_MAX_LEVELS; i++) {
 			snprintf(dbuf_stats.cache_levels[i].name,
 			    KSTAT_STRLEN, "cache_level_%d", i);
@@ -902,8 +898,10 @@ retry:
 			dbuf_stats.cache_levels_bytes[i].data_type =
 			    KSTAT_DATA_UINT64;
 		}
+		dbuf_ksp->ks_data = &dbuf_stats;
+		dbuf_ksp->ks_update = dbuf_kstat_update;
+		kstat_install(dbuf_ksp);
 	}
-#endif	
 }
 
 void



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202002031710.013HAe7c079466>