aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys
diff options
context:
space:
mode:
authorMatthew Ahrens <[email protected]>2013-08-26 17:09:29 -0700
committerBrian Behlendorf <[email protected]>2013-10-31 09:16:03 -0700
commit330847ff36146a427a48e79a9733dda3828284e8 (patch)
treedb3a98b0b3b48203aad38ebc4d92aa837c6764d7 /include/sys
parenta117a6d66e5cf1e9d4f173bccc786a169e9a8e04 (diff)
Illumos #3537
3537 want pool io kstats Reviewed by: George Wilson <[email protected]> Reviewed by: Adam Leventhal <[email protected]> Reviewed by: Eric Schrock <[email protected]> Reviewed by: Sa?o Kiselkov <[email protected]> Reviewed by: Garrett D'Amore <[email protected]> Reviewed by: Brendan Gregg <[email protected]> Approved by: Gordon Ross <[email protected]> References: http://www.illumos.org/issues/3537 illumos/illumos-gate@c3a6601 Ported by: Cyril Plisko <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Porting Notes: 1. The patch was restructured to take advantage of the existing spa statistics infrastructure. To accomplish this the kstat was moved in to spa->io_stats and the init/destroy code moved to spa_stats.c. 2. The I/O kstat was simply named <pool> which conflicted with the pool directory we had already created. Therefore it was renamed to <pool>/io 3. An update handler was added to allow the kstat to be zeroed.
Diffstat (limited to 'include/sys')
-rw-r--r--include/sys/spa.h1
-rw-r--r--include/sys/zfs_context.h10
2 files changed, 9 insertions, 2 deletions
diff --git a/include/sys/spa.h b/include/sys/spa.h
index cb3ce11bc..13c9672aa 100644
--- a/include/sys/spa.h
+++ b/include/sys/spa.h
@@ -550,6 +550,7 @@ typedef struct spa_stats {
spa_stats_history_t read_history;
spa_stats_history_t txg_history;
spa_stats_history_t tx_assign_histogram;
+ spa_stats_history_t io_history;
} spa_stats_t;
typedef enum txg_state {
diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h
index dfd11d9f1..7910e08aa 100644
--- a/include/sys/zfs_context.h
+++ b/include/sys/zfs_context.h
@@ -344,10 +344,16 @@ extern void cv_broadcast(kcondvar_t *cv);
/*
* kstat creation, installation and deletion
*/
-extern kstat_t *kstat_create(char *, int,
- char *, char *, uchar_t, ulong_t, uchar_t);
+extern kstat_t *kstat_create(const char *, int,
+ const char *, const char *, uchar_t, ulong_t, uchar_t);
extern void kstat_install(kstat_t *);
extern void kstat_delete(kstat_t *);
+extern void kstat_waitq_enter(kstat_io_t *);
+extern void kstat_waitq_exit(kstat_io_t *);
+extern void kstat_runq_enter(kstat_io_t *);
+extern void kstat_runq_exit(kstat_io_t *);
+extern void kstat_waitq_to_runq(kstat_io_t *);
+extern void kstat_runq_back_to_waitq(kstat_io_t *);
extern void kstat_set_raw_ops(kstat_t *ksp,
int (*headers)(char *buf, size_t size),
int (*data)(char *buf, size_t size, void *data),