Ejemplo n.º 1
0
static void
vdev_queue_pending_remove(vdev_queue_t *vq, zio_t *zio)
{
	spa_t *spa = zio->io_spa;
	ASSERT(MUTEX_HELD(&vq->vq_lock));
	ASSERT3U(zio->io_priority, <, ZIO_PRIORITY_NUM_QUEUEABLE);
	vq->vq_class[zio->io_priority].vqc_active--;
	avl_remove(&vq->vq_active_tree, zio);

#ifdef illumos
	mutex_enter(&spa->spa_iokstat_lock);
	ASSERT3U(spa->spa_queue_stats[zio->io_priority].spa_active, >, 0);
	spa->spa_queue_stats[zio->io_priority].spa_active--;
	if (spa->spa_iokstat != NULL) {
		kstat_io_t *ksio = spa->spa_iokstat->ks_data;

		kstat_runq_exit(spa->spa_iokstat->ks_data);
		if (zio->io_type == ZIO_TYPE_READ) {
			ksio->reads++;
			ksio->nread += zio->io_size;
		} else if (zio->io_type == ZIO_TYPE_WRITE) {
			ksio->writes++;
			ksio->nwritten += zio->io_size;
		}
	}
	mutex_exit(&spa->spa_iokstat_lock);
#endif
}
Ejemplo n.º 2
0
static void
vdev_queue_pending_remove(vdev_queue_t *vq, zio_t *zio)
{
#ifdef LINUX
	spa_t *spa = zio->io_spa;
	spa_stats_history_t *ssh = &spa->spa_stats.io_history;
#endif

	ASSERT(MUTEX_HELD(&vq->vq_lock));
	ASSERT3U(zio->io_priority, <, ZIO_PRIORITY_NUM_QUEUEABLE);
	vq->vq_class[zio->io_priority].vqc_active--;
	avl_remove(&vq->vq_active_tree, zio);

#ifdef LINUX
	if (ssh->kstat != NULL) {
		kstat_io_t *ksio = ssh->kstat->ks_data;

		mutex_enter(&ssh->lock);
		kstat_runq_exit(ksio);
		if (zio->io_type == ZIO_TYPE_READ) {
			ksio->reads++;
			ksio->nread += zio->io_size;
		} else if (zio->io_type == ZIO_TYPE_WRITE) {
			ksio->writes++;
			ksio->nwritten += zio->io_size;
		}
		mutex_exit(&ssh->lock);
	}
#endif
}
Ejemplo n.º 3
0
static void
vdev_queue_pending_remove(vdev_queue_t *vq, zio_t *zio)
{
	spa_t *spa = zio->io_spa;
	avl_remove(&vq->vq_pending_tree, zio);
	if (spa->spa_iokstat != NULL) {
		kstat_io_t *ksio = spa->spa_iokstat->ks_data;

		mutex_enter(&spa->spa_iokstat_lock);
		kstat_runq_exit(spa->spa_iokstat->ks_data);
		if (zio->io_type == ZIO_TYPE_READ) {
			ksio->reads++;
			ksio->nread += zio->io_size;
		} else if (zio->io_type == ZIO_TYPE_WRITE) {
			ksio->writes++;
			ksio->nwritten += zio->io_size;
		}
		mutex_exit(&spa->spa_iokstat_lock);
	}
}