Igor,

These changes haven't integrated into illumos-joyent yet, so there is no
patch to cherry pick, except from the CR itself.

Thanks,
Jerry


On Wed, Oct 10, 2018 at 10:29 AM, Igor Kozhukhov <[email protected]> wrote:

> Hi Jerry,
>
> thanks you very much!
>
> do you have changes on illumos-joyent tree for cherry-pick ?
>
> -Igor
>
>
> On Oct 10, 2018, at 7:26 PM, Jerry Jelinek <[email protected]>
> wrote:
>
> I have taken the Nexenta TRIM work that was originally out for code review
> last year and updated it to work with the latest version of ZFS. The code
> passes the new trim tests and I have done some additional manual testing
> with DTrace to verify that the trim requests pass down into the scsi driver
> and that the proper unmapping is taking place. We have not run this in
> production yet. I currently have a code review up at:
>
> https://cr.joyent.us/#/c/4929/
>
> Anyone with a github account should be able to set themselves up to
> comment on this CR, or you can just send me feedback in email. I know this
> is a large review, but it has already gotten a lot of feedback last year
> when Nexenta put it out, and hopefully people will be able to take another
> look so we can get this integrated.
>
> The following is a summary of the changes I made from the original 2017
> Nexenta work to bring it up to date with the latest ZFS code.
>
> The names of many of the AVL trees were changed with commit 86714001. Here
> is the mapping between what was in the Nexenta code and what the new names
> are:
> ms_tree            -> ms_allocatable
> ms_freeingtree  -> ms_freeing
> ms_freedtree    -> ms_freed
> ms_defertree    -> ms_defer
> ms_size_tree    -> ms_allocatable_by_size
>
> usr/src/uts/common/fs/zfs/metaslab.c
> range_tree_create() calls had the wrong number of args, lock parameter no
> longer used.
>
> metaslab_trim_remove changes; in orig diff it was called in:
>     metaslab_load                 range_tree_walk defertree name changed
> to defer
>     metaslab_block_alloc      ok
>     metaslab_claim_dva        this has heavy modifications. now
>                               -> metaslab_claim_impl ->
> metaslab_claim_concrete
>                               I added the metaslab_trim_remove in
> metaslab_claim_concrete
>
> In orig patch, had spa_get_auto_trim() and metaslab_trim_add() calls in
> metaslab_free_dva()
>     metaslab_free_dva has heavy modifications; now the call path looks
> like:
>     -> metaslab_free_impl -> metaslab_free_concrete
>
> I don't think the spa_get_auto_trim() and metaslab_trim_add() should be in
> metaslab_free_concrete() though, due to new checkpoint handling.
>
> In the Nexenta patch, metaslab_free calls metaslab_free_dva but in
> metaslab_free for the current code, it calls metaslab_unalloc_dva for the
> "now" case - this matches the "now" case for the patched
> metaslab_trim_add() code.  metaslab_unalloc_dva doesn't exist in the patch,
> but this looks like the right place to add the spa_get_auto_trim() and
> metaslab_trim_add() at end.
>
> In metaslab_check_free(), I did not include the debugging code which
> depended on the debug changes we omitted from the driver changes we've
> already committed.
>
> usr/src/uts/common/fs/zfs/range_tree.c
> 332 Removed invalid assert.
>
> usr/src/uts/common/fs/zfs/spa.c
> spa_load_impl - changes here added to spa_ld_get_props instead
> spa_load_impl - added 3rd arg to spa_dir_prop calls
> Fixed spa_event_notify parameters throughout.
>
> usr/src/uts/common/fs/zfs/spa_misc.c
> Some minor change, but nothing substantial.
>
> usr/src/uts/common/fs/zfs/vdev_raidz.c
> Fixed up vdev_raidz_map_alloc.
> Added correct ops initialization.
> In vdev_raidz_map_free(), fixed code to use the new abd_free() behavior
> which was added in commit 4ee0199ec (due to backout and reimpl). I also
> removed the size variable which is no longer used, but wasn't cleaned up
> from this commit.
>
> usr/src/uts/common/fs/zfs/vdev_indirect.c
> Was not included in Nexenta patch. Added correct ops initialization.
>
> usr/src/uts/common/fs/zfs/zio.c
> Removed dfl_ck_func related debug code.
>
> usr/src/lib/libzpool
> Fixed Makefile.com
> KERNEL_OBJS was including taskq.o which didn't build right in user-land,
> but was unnecessary so removed it.
>
> zpool.1m
> Fixed all of the new format errors highlighted during the build.
>
> Thanks,
> Jerry
>
>
> *openzfs <https://openzfs.topicbox.com/latest>* / openzfs-developer / see
> discussions <https://openzfs.topicbox.com/groups/developer> + participants
> <https://openzfs.topicbox.com/groups/developer/members> + delivery options
> <https://openzfs.topicbox.com/groups/developer/subscription> Permalink
> <https://openzfs.topicbox.com/groups/developer/Tce91d507e14ab14a-M7c2699f6e9536d04070abf4b>
>

------------------------------------------
openzfs: openzfs-developer
Permalink: 
https://openzfs.topicbox.com/groups/developer/Tce91d507e14ab14a-Mc7c56f4df73ce49b7cd4ee66
Delivery options: https://openzfs.topicbox.com/groups/developer/subscription

Reply via email to