{"push_id":1436569187,"size":15,"distinct_size":15,"ref":"refs/heads/ntrim","head":"12ed406af2494b5bbbba0cbaeaa5c2bdc1d650d0","before":"2424c0e60e4f8f390ba8f6d06ad6b3c99ba1fbc5","commits":[{"sha":"f5d28a3a7507c20cfa94b1790bded8172f61cc31","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"Refresh dkio.h and add dkioc_free_util.h\n\nUpdate dkio.h from Nexenta's version to pick up DKIOCFREE and add their\ndkioc_free_util.h header for TRIM support.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/f5d28a3a7507c20cfa94b1790bded8172f61cc31"},{"sha":"3528c3ec7a5dac776094f0dba360f7ca399203ce","author":{"name":"Saso Kiselkov","email":"f59c14df02ff2fb395729fb29933a4f7903e5fc8@nexenta.com"},"message":"6363 Add UNMAP/TRIM functionality to ZFS\n\nPorted by: Tim Chase <tim@chase2k.com>\n\nPorting notes:\n    The trim kstats are in zfs/<pool> along with the other per-pool stats.\n\n    Added vdev trace support.\n\nOther changes:\n    Suppressed kstat creation for pools with \"$\" names.\n\n    The changes to vdev_raidz_map_alloc() have been minimized in order to allow\n    more conflict-free merging with future changes (ABD).\n\nAdded the following module parameters:\n    zfs_trim - Enable TRIM\n    zfs_trim_min_ext_sz - Minimum size to trim\n    zfs_txgs_per_trim - Transaction groups over which to batch trims","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/3528c3ec7a5dac776094f0dba360f7ca399203ce"},{"sha":"b805fa3a3ba26264f982620e0b99600c17a56df7","author":{"name":"Saso Kiselkov","email":"b86100f11176fdfb6791b2d5b294d122a254d8e6@gmail.com"},"message":"Brad Stone's review comments.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/b805fa3a3ba26264f982620e0b99600c17a56df7"},{"sha":"89861607b5fc83833609205bee0c7fba3bf8eca8","author":{"name":"Saso Kiselkov","email":"f59c14df02ff2fb395729fb29933a4f7903e5fc8@nexenta.com"},"message":"TRIM updates\n\nzpool(1M) coredumps on status when trimming a pool with log devices\nPassing invalid trim rate to zpool(1M) coredumps\nOn-demand TRIM shouldn't use system_taskq and should queue jobs\nOn-demand trim should store operation start and stop time\n\nReviewed by: Roman Strashkin <roman.strashkin@nexenta.com>\nReviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>\nReviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>\n\nPorted by: Tim Chase <tim@chase2k.com>\n\nPorting notes:\n\n    Null format parameters to strftime() were replaced with \"%c\".","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/89861607b5fc83833609205bee0c7fba3bf8eca8"},{"sha":"2a765623d1ccef11f29b231a8dadc5c0aa4b1d5b","author":{"name":"Yuri Pankov","email":"8b4bff60435613ea91ab51ddfac90df144264418@nexenta.com"},"message":"TRIM fixes\n\nZFS auto-trim, manual-trim and scrub can race and deadlock\nzpool destroy/export with autotrim=on panics due to lock assertion\n\nReviewed by: Dan Fields <dan.fields@nexenta.com>\nReviewed by: Roman Strashkin <roman.strashkin@nexenta.com>\nReviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>\nReviewed by: Rob Gittins <rob.gittins@nexenta.com>\nReviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>\n\nPorted by: Tim Chase <tim@chase2k.com>","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/2a765623d1ccef11f29b231a8dadc5c0aa4b1d5b"},{"sha":"f29d47d5f4818fae0371f161eb1df778e81f4453","author":{"name":"Saso Kiselkov","email":"f59c14df02ff2fb395729fb29933a4f7903e5fc8@nexenta.com"},"message":"Trim timestamps incorrectly shown in UTC instead of local time\n\nAlso update Nexenta copyrights.\n\nReviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>\nReviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>\nReviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>\n\nPorted by: Tim Chase <tim@chase2k.com>","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/f29d47d5f4818fae0371f161eb1df778e81f4453"},{"sha":"4af90e4cb7b3033724066760dd2b13ed317df0fa","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"Clarify TRIM support for Linux\n\nContrary to the illumos documentation, Linux does support TRIM on SATA\ndevices as well as on many other types of virtual block devices in the\nstorage stack.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/4af90e4cb7b3033724066760dd2b13ed317df0fa"},{"sha":"5f8a076d7c98cffdea49914491ddf1a4a8438b75","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"Use dfl_alloc() to allocate objects of type dkioc_free_list_t\n\nThe new dfl_alloc() function in the SPL encapsulates the proper kernel\nmemory allocation function for these object.  Since rather large arrays\nof them may be required, it uses vmem_zalloc() under Linux.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/5f8a076d7c98cffdea49914491ddf1a4a8438b75"},{"sha":"ddb36b7690539c55a757830d66f3bd06d7540c8f","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@onlight.com"},"message":"Update list of pool properties for TRIM support\n\nAdd the \"forcetrim\" and \"autotrim\" pool properties to the list expected\nby the zpool_get_002_pos test.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/ddb36b7690539c55a757830d66f3bd06d7540c8f"},{"sha":"04efd38b1f04265b859c7caf20a359d0317246e6","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"Allow to clear trim kstat","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/04efd38b1f04265b859c7caf20a359d0317246e6"},{"sha":"25ccef3f8c128586bc708772db2b28f06e6f590e","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@onlight.com"},"message":"Stop autotrim tasks before freeing zios\n\nIf the autotrim tasks aren't stopped first, some will continue to run\nduring the \"Wait for any outstanding async I/O to complete.\" wait code\nand those which are still running will encounter bogus root zios once\nthey're freed.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/25ccef3f8c128586bc708772db2b28f06e6f590e"},{"sha":"d015bfbb08e8cafac90aa47eca2eedf58ace6ffb","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"Fix vdev_raidz_psize_floor()\n\nThe original implementation could overestimate the physical size\nfor raidz2 and raidz3 and cause too much trimming.  Update with the\nimplementation provided by @ironMann in #3656.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/d015bfbb08e8cafac90aa47eca2eedf58ace6ffb"},{"sha":"ed1ada79e01befa8a8cb9c1fce2284ad91a605e8","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"Don't lock rt_lock in range_tree_verify()\n\nrange_tree_verify() was the only range tree support function which\nlocked rt_lock whereas all the other functions required the lock to\nbe taken by the caller.  If the lock is taken in range_tree_verify(),\nit's not possible to atomically verify a set of related range trees\n(those which are likely protected by the same lock).\n\nIn the previous implementation, checking \"related\" trees would be done\nas follows:\n\n    range_tree_verify(tree1, offset, size);\n    /* tree1's rt_lock is not taken here */\n    range_tree_verify(tree2, offset, size);\n\nThe new implementation requires:\n\n    mutex_enter(tree1->rt_lock);\n    range_tree_verify(tree1, offset, size);\n    range_tree_verify(tree2, offset, size);\n    mutex_exit(tree1->rt_lock);\n\nCurrently, the only consumer of range_tree_verify() is\nmetaslab_check_free() which verifies a set of realted range trees in\na metaslab.  The TRIM/DISCARD code adds an additional set of checks of\nthe current and previous trimsets, both of which are represented as\nrange trees.\n\nmetaslab_check_free() has been updated to lock ms_lock once for each\nvdev's metaslab and also for debugging builds to verify that the each\ntree's rt_lock matches the metaslab's ms_lock to prove they're related.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/ed1ada79e01befa8a8cb9c1fce2284ad91a605e8"},{"sha":"5113b5e666643aae904d1d441f1b05d7db2097f7","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"Manual trim should skip never-used metaslabs\n\nThe default behavior of a manual trim is now to skip never-used metaslabs\nunless the new \"zpool trim -f\" option in specified.  It's useful to skip\nnever-used metaslabs when the underlying vdevs are very large and/or\nare on a thinly provisioned SAN.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/5113b5e666643aae904d1d441f1b05d7db2097f7"},{"sha":"12ed406af2494b5bbbba0cbaeaa5c2bdc1d650d0","author":{"name":"Tim Chase","email":"7ec668561ebcdf298c8776d3f421b12206da9bfe@chase2k.com"},"message":"WIP Add test suite support to test TRIM\n\nCurrently tests autotrim for raidz1/2/3, mirrors and stripe.","distinct":true,"url":"https://api.github.com/repos/dweeezil/zfs/commits/12ed406af2494b5bbbba0cbaeaa5c2bdc1d650d0"}]}
{"actor":{"display_login":"dweeezil"}}