Module Name: src
Committed By: dennis
Date: Wed Dec 24 19:50:04 UTC 2014
Modified Files:
src/sys/sys: namei.src
Log Message:
Update struct nchstats to 64 bit counters on all machines.
Remove the now-redundant struct nchstats_sysctl. Containerize
structure member names with a macro to eliminate cut-and-paste.
To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/sys/sys/namei.src
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/sys/namei.src
diff -u src/sys/sys/namei.src:1.33 src/sys/sys/namei.src:1.34
--- src/sys/sys/namei.src:1.33 Tue Jun 3 21:16:15 2014
+++ src/sys/sys/namei.src Wed Dec 24 19:50:04 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: namei.src,v 1.33 2014/06/03 21:16:15 joerg Exp $ */
+/* $NetBSD: namei.src,v 1.34 2014/12/24 19:50:04 dennis Exp $ */
/*
* Copyright (c) 1985, 1989, 1991, 1993
@@ -288,36 +288,29 @@ void namecache_print(struct vnode *, voi
#endif
/*
- * Stats on usefulness of namei caches.
- * XXX: should be 64-bit counters.
- */
-struct nchstats {
- long ncs_goodhits; /* hits that we can really use */
- long ncs_neghits; /* negative hits that we can use */
- long ncs_badhits; /* hits we must drop */
- long ncs_falsehits; /* hits with id mismatch */
- long ncs_miss; /* misses */
- long ncs_long; /* long names that ignore cache */
- long ncs_pass2; /* names found with passes == 2 */
- long ncs_2passes; /* number of times we attempt it */
- long ncs_revhits; /* reverse-cache hits */
- long ncs_revmiss; /* reverse-cache misses */
-};
+ * Stats on usefulness of namei caches. A couple of structures are
+ * used for counting, with members having the same names but different
+ * types. Containerize member names with the preprocessor to avoid
+ * cut-'n'-paste. A (U) in the comment documents values that are
+ * incremented unlocked; we may treat these specially.
+ */
+#define _NAMEI_CACHE_STATS(type) { \
+ type ncs_goodhits; /* hits that we can really use (U) */ \
+ type ncs_neghits; /* negative hits that we can use */ \
+ type ncs_badhits; /* hits we must drop */ \
+ type ncs_falsehits; /* hits with id mismatch (U) */ \
+ type ncs_miss; /* misses */ \
+ type ncs_long; /* long names that ignore cache */ \
+ type ncs_pass2; /* names found with passes == 2 (U) */ \
+ type ncs_2passes; /* number of times we attempt it (U) */ \
+ type ncs_revhits; /* reverse-cache hits */ \
+ type ncs_revmiss; /* reverse-cache misses */ \
+}
-struct nchstats_sysctl {
- uint64_t ncs_goodhits; /* hits that we can really use */
- uint64_t ncs_neghits; /* negative hits that we can use */
- uint64_t ncs_badhits; /* hits we must drop */
- uint64_t ncs_falsehits; /* hits with id mismatch */
- uint64_t ncs_miss; /* misses */
- uint64_t ncs_long; /* long names that ignore cache */
- uint64_t ncs_pass2; /* names found with passes == 2 */
- uint64_t ncs_2passes; /* number of times we attempt it */
- uint64_t ncs_revhits; /* reverse-cache hits */
- uint64_t ncs_revmiss; /* reverse-cache misses */
-};
+/*
+ * Sysctl deals with a uint64_t version of the stats and summary
+ * totals are kept that way.
+ */
+struct nchstats _NAMEI_CACHE_STATS(uint64_t);
-#ifdef _KERNEL
-extern struct nchstats nchstats;
-#endif
/* #endif !_SYS_NAMEI_H_ (generated by gennameih.awk) */