]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - module/zfs/include/sys/dmu_impl.h
Update core ZFS code from build 121 to build 141.
[mirror_zfs-debian.git] / module / zfs / include / sys / dmu_impl.h
index 3868a5816440fd8318d678446413978c0f523a23..22f9f5f8c88c4533a7b01bd39f8ede22afd09dfa 100644 (file)
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -210,8 +210,7 @@ extern "C" {
  *
  * ds_lock
  *    protects:
- *     ds_user_ptr
- *     ds_user_evict_func
+ *     ds_objset
  *     ds_open_refcount
  *     ds_snapname
  *     ds_phys accounting
@@ -233,6 +232,39 @@ extern "C" {
 struct objset;
 struct dmu_pool;
 
+typedef struct dmu_xuio {
+       int next;
+       int cnt;
+       struct arc_buf **bufs;
+       iovec_t *iovp;
+} dmu_xuio_t;
+
+typedef struct xuio_stats {
+       /* loaned yet not returned arc_buf */
+       kstat_named_t xuiostat_onloan_rbuf;
+       kstat_named_t xuiostat_onloan_wbuf;
+       /* whether a copy is made when loaning out a read buffer */
+       kstat_named_t xuiostat_rbuf_copied;
+       kstat_named_t xuiostat_rbuf_nocopy;
+       /* whether a copy is made when assigning a write buffer */
+       kstat_named_t xuiostat_wbuf_copied;
+       kstat_named_t xuiostat_wbuf_nocopy;
+} xuio_stats_t;
+
+static xuio_stats_t xuio_stats = {
+       { "onloan_read_buf",    KSTAT_DATA_UINT64 },
+       { "onloan_write_buf",   KSTAT_DATA_UINT64 },
+       { "read_buf_copied",    KSTAT_DATA_UINT64 },
+       { "read_buf_nocopy",    KSTAT_DATA_UINT64 },
+       { "write_buf_copied",   KSTAT_DATA_UINT64 },
+       { "write_buf_nocopy",   KSTAT_DATA_UINT64 }
+};
+
+#define        XUIOSTAT_INCR(stat, val)        \
+       atomic_add_64(&xuio_stats.stat.value.ui64, (val))
+#define        XUIOSTAT_BUMP(stat)     XUIOSTAT_INCR(stat, 1)
+
+
 #ifdef __cplusplus
 }
 #endif