[developer] Re: [openzfs/openzfs] 9591 ms_shift can be incorrectly changed in MOS config for indirect vdevs that have been historically expanded (#651)

2018-06-13 Thread Tim Chase
dweeezil approved this pull request. LGTM. Tested under ZoL as part of the pool checkpoint work. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/651#pullrequestreview-128454673

[developer] Re: [openzfs/openzfs] 9486 reduce memory used by device removal on fragmented pools (#627)

2018-05-23 Thread Tim Chase
dweeezil approved this pull request. This patch stack LGTM. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/627#pullrequestreview-122667203 --

[developer] Re: [openzfs/openzfs] 9486 reduce memory used by device removal on fragmented pools (#627)

2018-05-12 Thread Tim Chase
dweeezil requested changes on this pull request. WIP port to ZoL. > + } else if (rs->rs_end - range_tree_min(segs) > + *max_alloc) { + /* +* This additional segment would extend past +

[developer] Re: [openzfs/openzfs] 9486 reduce memory used by device removal on fragmented pools (#627)

2018-05-12 Thread Tim Chase
dweeezil commented on this pull request. Note regarding WIP port to ZoL. - range_tree_remove(svr->svr_allocd_segs, offset, length); + /* +* Determine how big of a chunk to copy. We can allocate up +* to max_alloc bytes, and we can span up to vdev_removal_max_span +

[developer] Re: [openzfs/openzfs] 9290 device removal reduces redundancy of mirrors (#591)

2018-03-18 Thread Tim Chase
dweeezil commented on this pull request. So far, looks good (in the port to ZoL) except for the repair writes happening for read-only pools. > + if (is->is_child[is->is_good_child].ic_data == NULL) { + ret = EIO; + g

[developer] Re: [openzfs/openzfs] 9290 device removal reduces redundancy of mirrors (#591)

2018-03-17 Thread Tim Chase
@ahrens I'll look it over and try to get this into the ZoL device evacuation port this weekend. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/591#issuecomment-373924421 -

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2018-01-04 Thread Tim Chase
dweeezil commented on this pull request. Renamed tunable possibly unrelated to device evacutation? > int zfs_resilver_min_time_ms = 3000; /* min millisecs to resilver per txg */ boolean_t zfs_no_scrub_io = B_FALSE; /* set to disable scrub i/o */ boolean_t zfs_no_scrub_prefetch = B_FALSE; /* se

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2018-01-04 Thread Tim Chase
dweeezil commented on this pull request. Changed event when removing a log device. > + */ + vd->vdev_removing = B_TRUE; + + vdev_dirty_leaves(vd, VDD_DTL, *txg); + vdev_config_dirty(vd); + + spa_history_log_internal(spa, "vdev remove", NULL, + "%s vdev %llu

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2018-01-04 Thread Tim Chase
I've also added the patch to ```vdev-clear()``` mentioned in https://github.com/openzfs/openzfs/pull/482#issuecomment-347576750 to ZoL. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2018-01-04 Thread Tim Chase
dweeezil requested changes on this pull request. I'm still working through this on ZoL. > + spa->spa_l2cache.sav_sync = B_TRUE; + } else if (vd != NULL && vd->vdev_islog) { + ASSERT(!locked); + error = spa_vdev_remove_log(vd, &txg); + } else if

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2018-01-03 Thread Tim Chase
This is looking pretty good. I'm going to submit it to the ZoL buildbot now for additional verification. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/482#issuecomment-355137252 ---

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2018-01-03 Thread Tim Chase
@ahrens I was out of town for a week and am getting caught up now. I'm working on reconciling the changes to my ZoL PR and should be able to give this a final review today. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: h

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-27 Thread Tim Chase
@ahrens Yes, I'm on way way home from a vacation now and will give it a final review within the next day once I catch up the ZoL PR. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/48

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-03 Thread Tim Chase
dweeezil commented on this pull request. > + * vdevs, we can not add redundant toplevels. This ensures that +* we do not rely on resilver, which does not properly handle +* indirect vdevs. +*/ + if (spa->spa_vdev_removal != NULL || + spa->spa_removin

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-03 Thread Tim Chase
dweeezil commented on this pull request. > + * + * 3. The last case to consider is if the offset actually falls + *within the mapping entry's range. If this is the case, the + *offset is considered to be "equal to" the mapping entry and + *0 will be returned. + * + *

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-03 Thread Tim Chase
dweeezil commented on this pull request. > + *within the mapping entry's range. If this is the case, the + *offset is considered to be "equal to" the mapping entry and + *0 will be returned. + * + *NOTE: If the offset is equal to the entry's source offset, + *

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-02 Thread Tim Chase
dweeezil commented on this pull request. > + * vdevs, we can not add redundant toplevels. This ensures that +* we do not rely on resilver, which does not properly handle +* indirect vdevs. +*/ + if (spa->spa_vdev_removal != NULL || + spa->spa_removin

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-02 Thread Tim Chase
dweeezil commented on this pull request. > + *within the mapping entry's range. If this is the case, the + *offset is considered to be "equal to" the mapping entry and + *0 will be returned. + * + *NOTE: If the offset is equal to the entry's source offset, + *

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-12-02 Thread Tim Chase
dweeezil commented on this pull request. > + * + * 3. The last case to consider is if the offset actually falls + *within the mapping entry's range. If this is the case, the + *offset is considered to be "equal to" the mapping entry and + *0 will be returned. + * + *

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-11-29 Thread Tim Chase
@ahrens, I figured it out: In illumos, ```kmem_alloc(0, ...)``` returns NULL but in Linux, we get a magic pointer. I've done this little patch to ```vdev_compact_children()``` because apparently with the vdev removal code, it now depends on ```vdev_child``` being nulled out during compaction.

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-11-28 Thread Tim Chase
@ahrens I looked into the ```vdev_free()``` situation a bit closer and, for some reason, I'm seeing a value of 0x10 in ```vdev_child``` for an "indirect" vdev. I need to investigate further as to how this is happening. -- You are receiving this because you are subscribed to this thread. Reply

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-11-28 Thread Tim Chase
@ahrens Like this? ``` diff --git a/module/zfs/vdev.c b/module/zfs/vdev.c index 5185355..bfe7020 100644 --- a/module/zfs/vdev.c +++ b/module/zfs/vdev.c @@ -2921,6 +2921,12 @@ vdev_clear(spa_t *spa, vdev_t *vd) vdev_clear(spa, vd->vdev_child[c]); /* +* It makes no s

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-11-27 Thread Tim Chase
dweeezil requested changes on this pull request. > + * + * 3. The last case to consider is if the offset actually falls + *within the mapping entry's range. If this is the case, the + *offset is considered to be "equal to" the mapping entry and + *0 will be returned.

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-11-27 Thread Tim Chase
I've gotten the port to ZoL to the point that it works but am now going to have to plow through a bunch of testing issues which may have applicability in OpenZFS/illumos as well. @ahrens The first issue I've run across is the addition of the addition of the ```vdev_is_concrete()``` check to ```

[developer] Re: [openzfs/openzfs] 7614 zfs device evacuation/removal (#482)

2017-11-19 Thread Tim Chase
FYI, I'm working on porting this to ZoL. The basic porting is complete but there's quite a bit of interference due to the removal of range tree functions not managing caller's locks and also ZoL's extra range tree functions. Another point of conflict is zfsonlinux/zfs@0ea05c6 and a few gratuit