vdev_impl.h (302408) | vdev_impl.h (307277) |
---|---|
1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 39 unchanged lines hidden (view full) --- 48 49/* 50 * Forward declarations that lots of things need. 51 */ 52typedef struct vdev_queue vdev_queue_t; 53typedef struct vdev_cache vdev_cache_t; 54typedef struct vdev_cache_entry vdev_cache_entry_t; 55 | 1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE --- 39 unchanged lines hidden (view full) --- 48 49/* 50 * Forward declarations that lots of things need. 51 */ 52typedef struct vdev_queue vdev_queue_t; 53typedef struct vdev_cache vdev_cache_t; 54typedef struct vdev_cache_entry vdev_cache_entry_t; 55 |
56extern int zfs_vdev_queue_depth_pct; 57extern uint32_t zfs_vdev_async_write_max_active; 58 |
|
56/* 57 * Virtual device operations 58 */ 59typedef int vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *max_size, 60 uint64_t *logical_ashift, uint64_t *physical_ashift); 61typedef void vdev_close_func_t(vdev_t *vd); 62typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize); 63typedef void vdev_io_start_func_t(zio_t *zio); --- 121 unchanged lines hidden (view full) --- 185 txg_node_t vdev_txg_node; /* per-txg dirty vdev linkage */ 186 boolean_t vdev_remove_wanted; /* async remove wanted? */ 187 boolean_t vdev_probe_wanted; /* async probe wanted? */ 188 list_node_t vdev_config_dirty_node; /* config dirty list */ 189 list_node_t vdev_state_dirty_node; /* state dirty list */ 190 uint64_t vdev_deflate_ratio; /* deflation ratio (x512) */ 191 uint64_t vdev_islog; /* is an intent log device */ 192 uint64_t vdev_removing; /* device is being removed? */ | 59/* 60 * Virtual device operations 61 */ 62typedef int vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *max_size, 63 uint64_t *logical_ashift, uint64_t *physical_ashift); 64typedef void vdev_close_func_t(vdev_t *vd); 65typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize); 66typedef void vdev_io_start_func_t(zio_t *zio); --- 121 unchanged lines hidden (view full) --- 188 txg_node_t vdev_txg_node; /* per-txg dirty vdev linkage */ 189 boolean_t vdev_remove_wanted; /* async remove wanted? */ 190 boolean_t vdev_probe_wanted; /* async probe wanted? */ 191 list_node_t vdev_config_dirty_node; /* config dirty list */ 192 list_node_t vdev_state_dirty_node; /* state dirty list */ 193 uint64_t vdev_deflate_ratio; /* deflation ratio (x512) */ 194 uint64_t vdev_islog; /* is an intent log device */ 195 uint64_t vdev_removing; /* device is being removed? */ |
193 boolean_t vdev_ishole; /* is a hole in the namespace */ | 196 boolean_t vdev_ishole; /* is a hole in the namespace */ 197 kmutex_t vdev_queue_lock; /* protects vdev_queue_depth */ |
194 uint64_t vdev_top_zap; 195 196 /* | 198 uint64_t vdev_top_zap; 199 200 /* |
201 * The queue depth parameters determine how many async writes are 202 * still pending (i.e. allocated by net yet issued to disk) per 203 * top-level (vdev_async_write_queue_depth) and the maximum allowed 204 * (vdev_max_async_write_queue_depth). These values only apply to 205 * top-level vdevs. 206 */ 207 uint64_t vdev_async_write_queue_depth; 208 uint64_t vdev_max_async_write_queue_depth; 209 210 /* |
|
197 * Leaf vdev state. 198 */ 199 range_tree_t *vdev_dtl[DTL_TYPES]; /* dirty time logs */ 200 space_map_t *vdev_dtl_sm; /* dirty time log space map */ 201 txg_node_t vdev_dtl_node; /* per-txg dirty DTL linkage */ 202 uint64_t vdev_dtl_object; /* DTL object */ 203 uint64_t vdev_psize; /* physical device capacity */ 204 uint64_t vdev_wholedisk; /* true if this is a whole disk */ --- 184 unchanged lines hidden --- | 211 * Leaf vdev state. 212 */ 213 range_tree_t *vdev_dtl[DTL_TYPES]; /* dirty time logs */ 214 space_map_t *vdev_dtl_sm; /* dirty time log space map */ 215 txg_node_t vdev_dtl_node; /* per-txg dirty DTL linkage */ 216 uint64_t vdev_dtl_object; /* DTL object */ 217 uint64_t vdev_psize; /* physical device capacity */ 218 uint64_t vdev_wholedisk; /* true if this is a whole disk */ --- 184 unchanged lines hidden --- |