Improve N-way mirror performance
[zfs.git] / include / sys / txg.h
index e323d5e..f9d6dd4 100644 (file)
@@ -22,6 +22,9 @@
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
 
 #ifndef _SYS_TXG_H
 #define        _SYS_TXG_H
@@ -108,6 +111,12 @@ extern boolean_t txg_stalled(struct dsl_pool *dp);
 extern boolean_t txg_sync_waiting(struct dsl_pool *dp);
 
 /*
+ * Wait for pending commit callbacks of already-synced transactions to finish
+ * processing.
+ */
+extern void txg_wait_callbacks(struct dsl_pool *dp);
+
+/*
  * Per-txg object lists.
  */
 
@@ -115,7 +124,7 @@ extern boolean_t txg_sync_waiting(struct dsl_pool *dp);
 
 extern void txg_list_create(txg_list_t *tl, size_t offset);
 extern void txg_list_destroy(txg_list_t *tl);
-extern int txg_list_empty(txg_list_t *tl, uint64_t txg);
+extern boolean_t txg_list_empty(txg_list_t *tl, uint64_t txg);
 extern int txg_list_add(txg_list_t *tl, void *p, uint64_t txg);
 extern int txg_list_add_tail(txg_list_t *tl, void *p, uint64_t txg);
 extern void *txg_list_remove(txg_list_t *tl, uint64_t txg);
@@ -124,6 +133,9 @@ extern int txg_list_member(txg_list_t *tl, void *p, uint64_t txg);
 extern void *txg_list_head(txg_list_t *tl, uint64_t txg);
 extern void *txg_list_next(txg_list_t *tl, void *p, uint64_t txg);
 
+/* Global tuning */
+extern int zfs_txg_timeout;
+
 #ifdef __cplusplus
 }
 #endif