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>


  87 void arc_data_buf_free(void *buf, uint64_t space);
  88 arc_buf_t *arc_buf_alloc(spa_t *spa, int size, void *tag,
  89     arc_buf_contents_t type);
  90 arc_buf_t *arc_loan_buf(spa_t *spa, int size);
  91 void arc_return_buf(arc_buf_t *buf, void *tag);
  92 void arc_loan_inuse_buf(arc_buf_t *buf, void *tag);
  93 void arc_buf_add_ref(arc_buf_t *buf, void *tag);
  94 boolean_t arc_buf_remove_ref(arc_buf_t *buf, void *tag);
  95 int arc_buf_size(arc_buf_t *buf);
  96 void arc_release(arc_buf_t *buf, void *tag);
  97 int arc_released(arc_buf_t *buf);
  98 int arc_has_callback(arc_buf_t *buf);
  99 void arc_buf_freeze(arc_buf_t *buf);
 100 void arc_buf_thaw(arc_buf_t *buf);
 101 boolean_t arc_buf_eviction_needed(arc_buf_t *buf);
 102 #ifdef ZFS_DEBUG
 103 int arc_referenced(arc_buf_t *buf);
 104 #endif
 105 
 106 int arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp,
 107     arc_done_func_t *done, void *private, int priority, int flags,
 108     uint32_t *arc_flags, const zbookmark_t *zb);
 109 zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg,
 110     blkptr_t *bp, arc_buf_t *buf, boolean_t l2arc, boolean_t l2arc_compress,
 111     const zio_prop_t *zp, arc_done_func_t *ready, arc_done_func_t *done,
 112     void *private, int priority, int zio_flags, const zbookmark_t *zb);

 113 void arc_freed(spa_t *spa, const blkptr_t *bp);
 114 
 115 void arc_set_callback(arc_buf_t *buf, arc_evict_func_t *func, void *private);
 116 int arc_buf_evict(arc_buf_t *buf);
 117 
 118 void arc_flush(spa_t *spa);
 119 void arc_tempreserve_clear(uint64_t reserve);
 120 int arc_tempreserve_space(uint64_t reserve, uint64_t txg);
 121 
 122 void arc_init(void);
 123 void arc_fini(void);
 124 
 125 /*
 126  * Level 2 ARC
 127  */
 128 
 129 void l2arc_add_vdev(spa_t *spa, vdev_t *vd);
 130 void l2arc_remove_vdev(vdev_t *vd);
 131 boolean_t l2arc_vdev_present(vdev_t *vd);
 132 void l2arc_init(void);


  87 void arc_data_buf_free(void *buf, uint64_t space);
  88 arc_buf_t *arc_buf_alloc(spa_t *spa, int size, void *tag,
  89     arc_buf_contents_t type);
  90 arc_buf_t *arc_loan_buf(spa_t *spa, int size);
  91 void arc_return_buf(arc_buf_t *buf, void *tag);
  92 void arc_loan_inuse_buf(arc_buf_t *buf, void *tag);
  93 void arc_buf_add_ref(arc_buf_t *buf, void *tag);
  94 boolean_t arc_buf_remove_ref(arc_buf_t *buf, void *tag);
  95 int arc_buf_size(arc_buf_t *buf);
  96 void arc_release(arc_buf_t *buf, void *tag);
  97 int arc_released(arc_buf_t *buf);
  98 int arc_has_callback(arc_buf_t *buf);
  99 void arc_buf_freeze(arc_buf_t *buf);
 100 void arc_buf_thaw(arc_buf_t *buf);
 101 boolean_t arc_buf_eviction_needed(arc_buf_t *buf);
 102 #ifdef ZFS_DEBUG
 103 int arc_referenced(arc_buf_t *buf);
 104 #endif
 105 
 106 int arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp,
 107     arc_done_func_t *done, void *private, zio_priority_t priority, int flags,
 108     uint32_t *arc_flags, const zbookmark_t *zb);
 109 zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg,
 110     blkptr_t *bp, arc_buf_t *buf, boolean_t l2arc, boolean_t l2arc_compress,
 111     const zio_prop_t *zp, arc_done_func_t *ready, arc_done_func_t *physdone,
 112     arc_done_func_t *done, void *private, zio_priority_t priority,
 113     int zio_flags, const zbookmark_t *zb);
 114 void arc_freed(spa_t *spa, const blkptr_t *bp);
 115 
 116 void arc_set_callback(arc_buf_t *buf, arc_evict_func_t *func, void *private);
 117 int arc_buf_evict(arc_buf_t *buf);
 118 
 119 void arc_flush(spa_t *spa);
 120 void arc_tempreserve_clear(uint64_t reserve);
 121 int arc_tempreserve_space(uint64_t reserve, uint64_t txg);
 122 
 123 void arc_init(void);
 124 void arc_fini(void);
 125 
 126 /*
 127  * Level 2 ARC
 128  */
 129 
 130 void l2arc_add_vdev(spa_t *spa, vdev_t *vd);
 131 void l2arc_remove_vdev(vdev_t *vd);
 132 boolean_t l2arc_vdev_present(vdev_t *vd);
 133 void l2arc_init(void);