Lines Matching defs:vr

176 	vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
177 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
195 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
196 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
201 if (vr->vr_scan_offset[txg & TXG_MASK] > 0) {
202 vrp->vrp_last_offset = vr->vr_scan_offset[txg & TXG_MASK];
203 vr->vr_scan_offset[txg & TXG_MASK] = 0;
206 vrp->vrp_scan_time_ms = vr->vr_prev_scan_time_ms +
207 NSEC2MSEC(gethrtime() - vr->vr_pass_start_time);
225 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
226 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
239 vr->vr_prev_scan_time_ms = 0;
309 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
310 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
373 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
374 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
409 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
410 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
425 vr->vr_prev_scan_time_ms = 0;
456 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
457 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
488 vdev_rebuild_t *vr = zio->io_private;
489 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
490 vdev_t *vd = vr->vr_top_vdev;
492 mutex_enter(&vr->vr_io_lock);
501 uint64_t *off = &vr->vr_scan_offset[zio->io_txg & TXG_MASK];
509 ASSERT3U(vr->vr_bytes_inflight, >, 0);
510 vr->vr_bytes_inflight -= zio->io_size;
511 cv_broadcast(&vr->vr_io_cv);
512 mutex_exit(&vr->vr_io_lock);
557 vdev_rebuild_range(vdev_rebuild_t *vr, uint64_t start, uint64_t size)
559 uint64_t ms_id __maybe_unused = vr->vr_scan_msp->ms_id;
560 vdev_t *vd = vr->vr_top_vdev;
567 vr->vr_pass_bytes_scanned += size;
568 vr->vr_rebuild_phys.vrp_bytes_scanned += size;
580 vr->vr_pass_bytes_skipped += size;
584 mutex_enter(&vr->vr_io_lock);
587 while (vr->vr_bytes_inflight >= vr->vr_bytes_inflight_max)
588 cv_wait(&vr->vr_io_cv, &vr->vr_io_lock);
590 vr->vr_bytes_inflight += psize;
591 mutex_exit(&vr->vr_io_lock);
601 if (vr->vr_scan_offset[txg & TXG_MASK] == 0) {
602 vr->vr_scan_offset[txg & TXG_MASK] = start;
610 mutex_enter(&vr->vr_io_lock);
611 vr->vr_bytes_inflight -= psize;
612 mutex_exit(&vr->vr_io_lock);
621 vr->vr_scan_offset[txg & TXG_MASK] = start + size;
622 vr->vr_pass_bytes_issued += size;
623 vr->vr_rebuild_phys.vrp_bytes_issued += size;
626 abd_alloc(psize, B_FALSE), psize, vdev_rebuild_cb, vr,
634 * Issues rebuild I/Os for all ranges in the provided vr->vr_tree range tree.
637 vdev_rebuild_ranges(vdev_rebuild_t *vr)
639 vdev_t *vd = vr->vr_top_vdev;
640 zfs_btree_t *t = &vr->vr_scan_tree->rt_root;
646 uint64_t start = rs_get_start(rs, vr->vr_scan_tree);
647 uint64_t size = rs_get_end(rs, vr->vr_scan_tree) - start;
670 error = vdev_rebuild_range(vr, start, chunk_size);
691 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
692 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
715 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
716 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
747 vr->vr_prev_scan_time_ms = vrp->vrp_scan_time_ms;
748 vr->vr_top_vdev = vd;
785 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
786 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
787 vr->vr_top_vdev = vd;
788 vr->vr_scan_msp = NULL;
789 vr->vr_scan_tree = range_tree_create(NULL, RANGE_SEG64, NULL, 0, 0);
790 mutex_init(&vr->vr_io_lock, NULL, MUTEX_DEFAULT, NULL);
791 cv_init(&vr->vr_io_cv, NULL, CV_DEFAULT, NULL);
793 vr->vr_pass_start_time = gethrtime();
794 vr->vr_pass_bytes_scanned = 0;
795 vr->vr_pass_bytes_issued = 0;
796 vr->vr_pass_bytes_skipped = 0;
801 clear_rebuild_bytes(vr->vr_top_vdev);
811 vr->vr_scan_msp = msp;
821 vr->vr_bytes_inflight_max = MIN(limit, MAX(1ULL << 20,
836 ASSERT0(range_tree_space(vr->vr_scan_tree));
869 vr->vr_scan_tree, SM_ALLOC));
877 range_tree_add, vr->vr_scan_tree);
879 range_tree_remove, vr->vr_scan_tree);
886 range_tree_clear(vr->vr_scan_tree, 0,
906 error = vdev_rebuild_ranges(vr);
907 range_tree_vacate(vr->vr_scan_tree, NULL, NULL);
916 range_tree_destroy(vr->vr_scan_tree);
920 mutex_enter(&vr->vr_io_lock);
921 while (vr->vr_bytes_inflight > 0)
922 cv_wait(&vr->vr_io_cv, &vr->vr_io_lock);
924 mutex_exit(&vr->vr_io_lock);
926 mutex_destroy(&vr->vr_io_lock);
927 cv_destroy(&vr->vr_io_cv);
999 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
1000 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
1017 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
1018 vdev_rebuild_phys_t *vrp __maybe_unused = &vr->vr_rebuild_phys;
1054 vdev_rebuild_t *vr = &vd->vdev_rebuild_config;
1055 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
1149 vdev_rebuild_t *vr = &tvd->vdev_rebuild_config;
1150 vdev_rebuild_phys_t *vrp = &vr->vr_rebuild_phys;
1163 vr->vr_pass_start_time);
1164 vrs->vrs_pass_bytes_scanned = vr->vr_pass_bytes_scanned;
1165 vrs->vrs_pass_bytes_issued = vr->vr_pass_bytes_issued;
1166 vrs->vrs_pass_bytes_skipped = vr->vr_pass_bytes_skipped;