Print this page
4045 zfs write throttle & i/o scheduler performance work
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>

@@ -18,11 +18,11 @@
  *
  * CDDL HEADER END
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #ifndef _SYS_SPA_IMPL_H
 #define _SYS_SPA_IMPL_H

@@ -232,15 +232,26 @@
         uint64_t        spa_feat_for_write_obj; /* required to write to pool */
         uint64_t        spa_feat_for_read_obj;  /* required to read from pool */
         uint64_t        spa_feat_desc_obj;      /* Feature descriptions */
         cyclic_id_t     spa_deadman_cycid;      /* cyclic id */
         uint64_t        spa_deadman_calls;      /* number of deadman calls */
-        uint64_t        spa_sync_starttime;     /* starting time fo spa_sync */
+        hrtime_t        spa_sync_starttime;     /* starting time fo spa_sync */
         uint64_t        spa_deadman_synctime;   /* deadman expiration timer */
-        kmutex_t        spa_iokstat_lock;       /* protects spa_iokstat_* */
+
+        /*
+         * spa_iokstat_lock protects spa_iokstat and
+         * spa_queue_stats[].
+         */
+        kmutex_t        spa_iokstat_lock;
         struct kstat    *spa_iokstat;           /* kstat of io to this pool */
+        struct {
+                int spa_active;
+                int spa_queued;
+        } spa_queue_stats[ZIO_PRIORITY_NUM_QUEUEABLE];
+
         hrtime_t        spa_ccw_fail_time;      /* Conf cache write fail time */
+
         /*
          * spa_refcount & spa_config_lock must be the last elements
          * because refcount_t changes size based on compilation options.
          * In order for the MDB module to function correctly, the other
          * fields must remain in the same location.