Lines Matching defs:vq

108 	vdev_queue_t *vq = &vd->vdev_queue;
110 mutex_init(&vq->vq_lock, NULL, MUTEX_DEFAULT, NULL);
112 avl_create(&vq->vq_deadline_tree, vdev_queue_deadline_compare,
115 avl_create(&vq->vq_read_tree, vdev_queue_offset_compare,
118 avl_create(&vq->vq_write_tree, vdev_queue_offset_compare,
121 avl_create(&vq->vq_pending_tree, vdev_queue_offset_compare,
128 vdev_queue_t *vq = &vd->vdev_queue;
130 avl_destroy(&vq->vq_deadline_tree);
131 avl_destroy(&vq->vq_read_tree);
132 avl_destroy(&vq->vq_write_tree);
133 avl_destroy(&vq->vq_pending_tree);
135 mutex_destroy(&vq->vq_lock);
139 vdev_queue_io_add(vdev_queue_t *vq, zio_t *zio)
141 avl_add(&vq->vq_deadline_tree, zio);
146 vdev_queue_io_remove(vdev_queue_t *vq, zio_t *zio)
148 avl_remove(&vq->vq_deadline_tree, zio);
175 vdev_queue_io_to_issue(vdev_queue_t *vq, uint64_t pending_limit)
185 ASSERT(MUTEX_HELD(&vq->vq_lock));
187 if (avl_numnodes(&vq->vq_pending_tree) >= pending_limit ||
188 avl_numnodes(&vq->vq_deadline_tree) == 0)
191 fio = lio = avl_first(&vq->vq_deadline_tree);
195 maxgap = (t == &vq->vq_read_tree) ? zfs_vdev_read_gap_limit : 0;
257 if (t != &vq->vq_read_tree && mio != NULL) {
310 vdev_queue_io_remove(vq, dio);
315 avl_add(&vq->vq_pending_tree, aio);
321 vdev_queue_io_remove(vq, fio);
330 mutex_exit(&vq->vq_lock);
333 mutex_enter(&vq->vq_lock);
337 avl_add(&vq->vq_pending_tree, fio);
345 vdev_queue_t *vq = &zio->io_vd->vdev_queue;
356 zio->io_vdev_tree = &vq->vq_read_tree;
358 zio->io_vdev_tree = &vq->vq_write_tree;
360 mutex_enter(&vq->vq_lock);
365 vdev_queue_io_add(vq, zio);
367 nio = vdev_queue_io_to_issue(vq, zfs_vdev_min_pending);
369 mutex_exit(&vq->vq_lock);
385 vdev_queue_t *vq = &zio->io_vd->vdev_queue;
387 mutex_enter(&vq->vq_lock);
389 avl_remove(&vq->vq_pending_tree, zio);
392 zio_t *nio = vdev_queue_io_to_issue(vq, zfs_vdev_max_pending);
395 mutex_exit(&vq->vq_lock);
402 mutex_enter(&vq->vq_lock);
405 mutex_exit(&vq->vq_lock);