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>

@@ -16,10 +16,11 @@
  * fields enclosed by brackets "[]" replaced with your own identifying
  * information: Portions Copyright [yyyy] [name of copyright owner]
  *
  * CDDL HEADER END
  */
+
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 

@@ -87,15 +88,18 @@
  * every cpu (see txg_quiesce()).
  */
 typedef struct tx_state {
         tx_cpu_t        *tx_cpu;        /* protects access to tx_open_txg */
         kmutex_t        tx_sync_lock;   /* protects the rest of this struct */
+
         uint64_t        tx_open_txg;    /* currently open txg id */
         uint64_t        tx_quiesced_txg; /* quiesced txg waiting for sync */
         uint64_t        tx_syncing_txg; /* currently syncing txg id */
         uint64_t        tx_synced_txg;  /* last synced txg id */
 
+        hrtime_t        tx_open_time;   /* start time of tx_open_txg */
+
         uint64_t        tx_sync_txg_waiting; /* txg we're waiting to sync */
         uint64_t        tx_quiesce_txg_waiting; /* txg we're waiting to open */
 
         kcondvar_t      tx_sync_more_cv;
         kcondvar_t      tx_sync_done_cv;