{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":437011,"defaultBranch":"master","name":"zfs","ownerLogin":"openzfs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2009-12-14T20:20:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4510897?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714690604.0","currentOid":""},"activityList":{"items":[{"before":"8f1b7a6fa6762ea4c89198ceb11c521f80b92ddc","after":"04bae5ec95f7273105237159a882d5b72ec2b998","ref":"refs/heads/master","pushedAt":"2024-05-03T16:53:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Disable high priority ZIO threads on FreeBSD and Linux\n\nHigh priority threads are handling ZIL writes. While there is no\r\nZIL compression, there is encryption, checksuming and RAIDZ math.\r\nWe've found that on large systems 1 taskq with 5 threads can be\r\na bottleneck for throughput, IOPS or both. Instead of just bumping\r\nnumber of threads with a risk of overloading CPUs and increasing\r\nlatency, switch to using TQ_FRONT mechanism to increase sync write\r\nrequests priority within standard write threads. Do not do it on\r\nIllumos, since its TQ_FRONT implementation is inherently unfair.\r\nFreeBSD and Linux don't have this problem, so we can do it there.\r\n\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Rob Norris \r\nSigned-off-by: Alexander Motin \r\nSponsored-By: iXsystems, Inc.\r\nCloses #16146","shortMessageHtmlLink":"Disable high priority ZIO threads on FreeBSD and Linux"}},{"before":null,"after":"2566592045780e7be7afc899c2496b1ae3af4f4d","ref":"refs/heads/zfs-2.2.5-staging","pushedAt":"2024-05-02T22:56:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tonyhutter","name":"Tony Hutter","path":"/tonyhutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11469457?s=80&v=4"},"commit":{"message":"Tag zfs-2.2.4\n\nMETA file and changelog updated.\n\nSigned-off-by: Tony Hutter ","shortMessageHtmlLink":"Tag zfs-2.2.4"}},{"before":"645b83307918085ab2f0e12618809e348635b34f","after":"8f1b7a6fa6762ea4c89198ceb11c521f80b92ddc","ref":"refs/heads/master","pushedAt":"2024-05-02T22:18:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"vdev_disk: disable flushes if device does not support it\n\nIf the underlying device doesn't have a write-back cache, the kernel\r\nwill just return a successful response. This doesn't hurt anything, but\r\nit's extra work on the IO taskqs that are unnecessary. So, detect this\r\nwhen we open the device for the first time.\r\n\r\nSponsored-by: Klara, Inc.\r\nSponsored-by: Wasabi Technology, Inc.\r\nReviewed-by: Alexander Motin \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Rob Norris \r\nCloses #16148","shortMessageHtmlLink":"vdev_disk: disable flushes if device does not support it"}},{"before":"c883088df83ced3a2b8b38e6d89a5e63fb153ee4","after":"2566592045780e7be7afc899c2496b1ae3af4f4d","ref":"refs/heads/zfs-2.2-release","pushedAt":"2024-05-02T20:57:00.000Z","pushType":"push","commitsCount":86,"pusher":{"login":"tonyhutter","name":"Tony Hutter","path":"/tonyhutter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11469457?s=80&v=4"},"commit":{"message":"Tag zfs-2.2.4\n\nMETA file and changelog updated.\n\nSigned-off-by: Tony Hutter ","shortMessageHtmlLink":"Tag zfs-2.2.4"}},{"before":"8fd3a5d02f3f6bad9e8e65b6aded694eae222bf2","after":"645b83307918085ab2f0e12618809e348635b34f","ref":"refs/heads/master","pushedAt":"2024-05-01T18:07:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Improve write issue taskqs utilization\n\n- Reduce number of allocators on small system down to one per 4\r\nCPU cores, keeping maximum at 4 on 16+ core systems. Small systems\r\nshould not have the lock contention multiple allocators supposed\r\nto solve, while having several metaslabs open and modified each\r\nTXG is not free.\r\n - Reduce number of write issue taskqs down to one per 16 CPU\r\ncores and an integer fraction of number of allocators. On mid-\r\nsized systems, where multiple allocators already make sense, too\r\nmany write issue taskqs may reduce write speed on single-file\r\nworkloads, since single file is handled by only one taskq to\r\nreduce fragmentation. On large systems, that can actually benefit\r\nfrom many taskq's better IOPS, the bottleneck is less important,\r\nsince in worst case there will be at least 16 cores to handle it.\r\n - Distribute dnodes between allocators (and taskqs) in a round-\r\nrobin fashion instead of relying on sync taskqs to be balanced.\r\nThe last is not guarantied and may depend on scheduling.\r\n - Remove io_wr_iss_tq from struct zio. io_allocator is enough.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by:\tAlexander Motin \r\nSponsored by:\tiXsystems, Inc.\r\nCloses #16130","shortMessageHtmlLink":"Improve write issue taskqs utilization"}},{"before":"051460b8b2bb78add2b7ed5255f7656a33be903a","after":"8fd3a5d02f3f6bad9e8e65b6aded694eae222bf2","ref":"refs/heads/master","pushedAt":"2024-05-01T17:59:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Slightly improve dnode hash\n\nAs I understand just for being less predictable dnode hash includes\r\n8 bits of objset pointer, starting at 6. But since objset_t is\r\nmore than 1KB in size, its allocations are likely aligned to 2KB,\r\nthat means 11 lower bits provide no entropy. Just take the 8 bits\r\nstarting from 11.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by:\tAlexander Motin \r\nSponsored by:\tiXsystems, Inc.\r\nCloses #16131","shortMessageHtmlLink":"Slightly improve dnode hash"}},{"before":"a6edc0adb293caf4e8bca2948af71b192b26bf58","after":"051460b8b2bb78add2b7ed5255f7656a33be903a","ref":"refs/heads/master","pushedAt":"2024-05-01T17:57:40.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"libspl/assert: use libunwind for backtrace when available\n\nlibunwind seems to do a better job of resolving a symbols than\nbacktrace(), and is also useful on platforms that don't have backtrace()\n(eg musl). If it's available, use it.\n\nReviewed-by: Brian Behlendorf \nSigned-off-by: Rob Norris \nSponsored-by: https://despairlabs.com/sponsor/\nCloses #16140","shortMessageHtmlLink":"libspl/assert: use libunwind for backtrace when available"}},{"before":"c3f2f1aa2dccd5528336d90a6dd2f2a5c97b6352","after":"a6edc0adb293caf4e8bca2948af71b192b26bf58","ref":"refs/heads/master","pushedAt":"2024-04-29T22:57:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zio: try to execute TYPE_NULL ZIOs on the current task\n\nMany TYPE_NULL ZIOs are used to provide a sync point for child ZIOs, and\r\ndo not do any actual work themselves. However, they are still dispatched\r\nto a dedicated, single-thread taskq, which leads to their execution\r\nbeing entirely task switch and dequeue overhead for no actual reason.\r\n\r\nThis commit changes it so that when selecting a parent ZIO to execute,\r\nif the parent is TYPE_NULL and has no done function (that is, no\r\nadditional work), it is executed on the same thread. This reduces task\r\nswitches and frees up CPU cores for other work.\r\n\r\nSponsored-by: Klara, Inc.\r\nSponsored-by: Wasabi Technology, Inc.\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alexander Motin \r\nSigned-off-by: Rob Norris \r\nCloses #16134","shortMessageHtmlLink":"zio: try to execute TYPE_NULL ZIOs on the current task"}},{"before":"b28461b7c6511be571ee2f7d71c0d7be12aa4630","after":"c3f2f1aa2dccd5528336d90a6dd2f2a5c97b6352","ref":"refs/heads/master","pushedAt":"2024-04-29T21:35:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"vdev probe to slow disk can stall mmp write checker\n\nSimplify vdev probes in the zio_vdev_io_done context to\r\navoid holding the spa config lock for a long duration.\r\n\r\nAlso allow zpool clear if no evidence of another host\r\nis using the pool.\r\n\r\nSponsored-by: Klara, Inc.\r\nSponsored-by: Wasabi Technology, Inc.\r\nReviewed-by: Olaf Faaland \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Don Brady \r\nCloses #15839","shortMessageHtmlLink":"vdev probe to slow disk can stall mmp write checker"}},{"before":"db499e68f9ef8d4b12ebdab699184e3acf35567c","after":"b28461b7c6511be571ee2f7d71c0d7be12aa4630","ref":"refs/heads/master","pushedAt":"2024-04-29T20:28:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Fix arcstats for FreeBSD after zfetch support\n\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alexander Motin \r\nSigned-off-by: Ameer Hamza \r\nCloses #16141","shortMessageHtmlLink":"Fix arcstats for FreeBSD after zfetch support"}},{"before":"4840f023afae7c4932c903cf3a436c02c6704e20","after":"db499e68f9ef8d4b12ebdab699184e3acf35567c","ref":"refs/heads/master","pushedAt":"2024-04-29T18:32:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Overflowing refreservation is bad\n\nSomeone came to me and pointed out that you could pretty\r\nreadily cause the refreservation calculation to exceed\r\n2**64, given the 2**17 multiplier in it, and produce\r\nrefreservations wildly less than the actual volsize in cases where\r\nit should have failed.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Rich Ercolani \r\nCloses #15996","shortMessageHtmlLink":"Overflowing refreservation is bad"}},{"before":"21bc066ece7fcf0f8250ba5dfe05fd7f507dca28","after":"4840f023afae7c4932c903cf3a436c02c6704e20","ref":"refs/heads/master","pushedAt":"2024-04-29T18:31:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"GCC: Fixes for gcc 14 on Fedora 40\n\n- Workaround dangling pointer in uu_list.c (#16124)\r\n- Fix calloc() transposed arguments in zpool_vdev_os.c\r\n- Make some temp variables unsigned to prevent triggering a\r\n '-Werror=alloc-size-larger-than' error.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Tony Hutter \r\nCloses #16124\r\nCloses #16125","shortMessageHtmlLink":"GCC: Fixes for gcc 14 on Fedora 40"}},{"before":"317b31eedb2b729985a48d5b98a3a5d34895eeb2","after":"21bc066ece7fcf0f8250ba5dfe05fd7f507dca28","ref":"refs/heads/master","pushedAt":"2024-04-25T21:24:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Fix updating the zvol_htable when renaming a zvol\n\nWhen renaming a zvol, insert it into zvol_htable using the new name, not\r\nthe old name. Otherwise some operations won't work. For example,\r\n\"zfs set volsize\" while the zvol is open.\r\n\r\nSponsored by:\tAxcient\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alek Pinchuk \r\nSigned-off-by:\tAlan Somers \r\nCloses #16127\r\nCloses #16128","shortMessageHtmlLink":"Fix updating the zvol_htable when renaming a zvol"}},{"before":"5044c4e3ff0558b726b491a9267fc3db6f855a2d","after":"317b31eedb2b729985a48d5b98a3a5d34895eeb2","ref":"refs/heads/master","pushedAt":"2024-04-25T20:40:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Python 3.12 deprecated python3-distutils\n\nAs for python-3.12 the distutils package has been deprecated.\r\nThe latest ax_python_devel.m4 macro from the autoconf archive\r\nhas been updated accordingly so let's pull in the new version.\r\n\r\nWe can also drop the changes made to our customized version\r\nto continue if the development version is not installed since\r\nthis functionality has been included upstream.\r\n\r\nReviewed-by: Rich Ercolani \r\nSigned-off-by: Brian Behlendorf \r\nCloses #16126\r\nCloses #16129","shortMessageHtmlLink":"Python 3.12 deprecated python3-distutils"}},{"before":"67d13998b3e055232a07311c2dc609571eaf1df1","after":"5044c4e3ff0558b726b491a9267fc3db6f855a2d","ref":"refs/heads/master","pushedAt":"2024-04-24T21:51:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Fast Dedup: ZAP Shrinking\n\nThis allows ZAPs to shrink. When there are two empty sibling leafs,\r\none of them is collapsed and its storage space is reused.\r\nThis improved performance on directories that at one time contained\r\na large number of files, but many or all of those files have since\r\nbeen deleted.\r\n\r\nThis also applies to all other types of ZAPs as well.\r\n\r\nSponsored-by: iXsystems, Inc.\r\nSponsored-by: Klara, Inc.\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alexander Motin \r\nSigned-off-by: Alexander Stetsenko \r\nCloses #15888","shortMessageHtmlLink":"Fast Dedup: ZAP Shrinking"}},{"before":"1f940de07224c2068e7c721222b1f3a519820ca9","after":"67d13998b3e055232a07311c2dc609571eaf1df1","ref":"refs/heads/master","pushedAt":"2024-04-24T21:38:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Make more taskq parameters writable\n\nThere is no reason for these module parameters to be read-only.\r\nBeing modified they just apply on next pool import/creation, that\r\nis useful for testing different values.\r\n\r\nReviewed-by: Rich Ercolani \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by:\tAlexander Motin \r\nSponsored by:\tiXsystems, Inc.\r\nCloses #16118","shortMessageHtmlLink":"Make more taskq parameters writable"}},{"before":"87d81d1d13e0ef848d2d533a4f12f5de41026e73","after":"1f940de07224c2068e7c721222b1f3a519820ca9","ref":"refs/heads/master","pushedAt":"2024-04-23T16:06:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"L2ARC: Cleanup buffer re-compression\n\nWhen compressed ARC is disabled, we may have to re-compress when\r\nwriting into L2ARC. If doing so we can't fit it into the original\r\nphysical size, we should just fail immediately, since even if it\r\nmay still fit into allocation size, its checksum will never match.\r\n\r\nWhile there, refactor the code similar to other compression places\r\nwithout using abd_return_buf_copy().\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by:\tAlexander Motin \r\nSponsored by:\tiXsystems, Inc.\r\nCloses #16038","shortMessageHtmlLink":"L2ARC: Cleanup buffer re-compression"}},{"before":"4036b8d027fb7fe1a629b08a0d23cac975ab2eb9","after":"87d81d1d13e0ef848d2d533a4f12f5de41026e73","ref":"refs/heads/master","pushedAt":"2024-04-23T00:55:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zfs-kmod: fix empty rpm requires/conflicts\n\nFix an error in zfs-kmod.spec that causes kmod-zfs packages not to\r\ninclude the correct RPM requires/conflicts relationships. With this\r\nchange applied, RPM correctly no longer allows kmod-zfs & zfs-dkms\r\npackages to be installed together.\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Todd Seidelmann <18294602+seidelma@users.noreply.github.com>\r\nCloses #16121","shortMessageHtmlLink":"zfs-kmod: fix empty rpm requires/conflicts"}},{"before":"c346068e5efeafd5676ab1644086877173ca4226","after":"4036b8d027fb7fe1a629b08a0d23cac975ab2eb9","ref":"refs/heads/master","pushedAt":"2024-04-22T18:41:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Refactor dbuf_read() for safer decryption\n\nIn dbuf_read_verify_dnode_crypt():\r\n - We don't need original dbuf locked there. Instead take a lock\r\non a dnode dbuf, that is actually manipulated.\r\n - Block decryption for a dnode dbuf if it is currently being\r\nwritten. ARC hash lock does not protect anonymous buffers, so\r\narc_untransform() is unsafe when used on buffers being written,\r\nthat may happen in case of encrypted dnode buffers, since they\r\nare not copied by dbuf_dirty()/dbuf_hold_copy().\r\n\r\nIn dbuf_read():\r\n - If the buffer is in flight, recheck its compression/encryption\r\nstatus after it is cached, since it may need arc_untransform().\r\n\r\nTested-by: Rich Ercolani \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by:\tAlexander Motin \r\nSponsored by:\tiXsystems, Inc.\r\nCloses #16104","shortMessageHtmlLink":"Refactor dbuf_read() for safer decryption"}},{"before":"7e52795aad561ec39e76a3ef6fea9e5c254b2e16","after":"c346068e5efeafd5676ab1644086877173ca4226","ref":"refs/heads/master","pushedAt":"2024-04-22T17:59:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"zfs get: add '-t fs' and '-t vol' options\n\nMake `zfs get` accept `fs` for `filesystem` and `vol` for `volume`.\r\n\r\nReviewed-by: Rob Norris \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Ryan \r\nCloses #16117","shortMessageHtmlLink":"zfs get: add '-t fs' and '-t vol' options"}},{"before":"cdae59e1530061cf4caa549a062994161c4383c6","after":"7e52795aad561ec39e76a3ef6fea9e5c254b2e16","ref":"refs/heads/master","pushedAt":"2024-04-22T17:48:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"ztest: use ASSERT3P to compare pointers\n\nWith a sufficiently modern gcc (I saw this with gcc13), gcc complains\r\nwhen casting pointers to an integer of a different type (even a larger\r\none). On 32-bt ASSERT3U does this on 32-bit systems by casting a 32-bit\r\npointer to uint64_t so use ASSERT3P which uses uintptr_t.\r\n\r\nFixes: 5caeef02fa53 RAID-Z expansion feature\r\n\r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Brooks Davis \r\nCloses #16115","shortMessageHtmlLink":"ztest: use ASSERT3P to compare pointers"}},{"before":"9b43d7ba85059d37533d42f62cbb646203fd4a94","after":"cdae59e1530061cf4caa549a062994161c4383c6","ref":"refs/heads/master","pushedAt":"2024-04-22T17:47:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"ZTS: user_namespace_004.ksh avoid error in cleanup if unsupported\n\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Seth Troisi \r\nCloses #16114","shortMessageHtmlLink":"ZTS: user_namespace_004.ksh avoid error in cleanup if unsupported"}},{"before":"c183d164aa11e61dfe1f34907c1a029d75162f1d","after":"9b43d7ba85059d37533d42f62cbb646203fd4a94","ref":"refs/heads/master","pushedAt":"2024-04-22T17:45:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Add newline to two zpool messages\n\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Seth Troisi \r\nCloses #16113","shortMessageHtmlLink":"Add newline to two zpool messages"}},{"before":"f4f156157de3f61e55db0429b10c63d02226e115","after":"c183d164aa11e61dfe1f34907c1a029d75162f1d","ref":"refs/heads/master","pushedAt":"2024-04-22T16:42:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Parallel pool import\n\nThis commit allow spa_load() to drop the spa_namespace_lock so\r\nthat imports can happen concurrently. Prior to dropping the\r\nspa_namespace_lock, the import logic will set the spa_load_thread\r\nvalue to track the thread which is doing the import.\r\n\r\nConsumers of spa_lookup() retain the same behavior by blocking\r\nwhen either a thread is holding the spa_namespace_lock or the\r\nspa_load_thread value is set. This will ensure that critical\r\nconcurrent operations cannot take place while a pool is being\r\nimported.\r\n\r\nThe zpool command is also enhanced to provide multi-threaded support\r\nwhen invoking zpool import -a.\r\n\r\nLastly, zinject provides a mechanism to insert artificial delays\r\nwhen importing a pool and new zfs tests are added to verify parallel\r\nimport functionality.\r\n\r\nContributions-by: Don Brady \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: George Wilson \r\nCloses #16093","shortMessageHtmlLink":"Parallel pool import"}},{"before":"9f83eec03904b18e052fbe2c66542bd47254cf57","after":"f4f156157de3f61e55db0429b10c63d02226e115","ref":"refs/heads/master","pushedAt":"2024-04-19T23:41:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"abd_iter_page: rework to handle multipage scatterlists\n\nPreviously, abd_iter_page() would assume that every scatterlist would\r\ncontain a single page (compound or no), because that's all we ever\r\ncreate in abd_alloc_chunks(). However, scatterlists can contain multiple\r\npages of arbitrary provenance, and if we get one of those, we'd get all\r\nthe math wrong.\r\n\r\nThis reworks things to handle multiple pages in a scatterlist, by\r\nproperly finding the right page within it for the given offset, and\r\nunderstanding better where the end of the page is and not crossing it.\r\n\r\nSponsored-by: Klara, Inc.\r\nSponsored-by: Wasabi Technology, Inc.\r\nReported-by: Brian Atkinson \r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Brian Atkinson \r\nSigned-off-by: Rob Norris \r\nCloses #16108","shortMessageHtmlLink":"abd_iter_page: rework to handle multipage scatterlists"}},{"before":"26d49fec5f862818a0410fedbba1efded0543374","after":"9f83eec03904b18e052fbe2c66542bd47254cf57","ref":"refs/heads/master","pushedAt":"2024-04-19T23:18:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Handle FLUSH errors as \"expected\"\n\nBefore #16061 zio_vdev_io_done() was not used for FLUSH requests.\r\nAddition of it triggers reprobe each TXG for vdevs not supporting\r\nthem. Since those errors are often expected, they are normally\r\nhandled by individual vdev drivers and should be ignored here.\r\n\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Rob Norris \r\nSigned-off-by:\tAlexander Motin \r\nSponsored by:\tiXsystems, Inc.\r\nCloses #16110","shortMessageHtmlLink":"Handle FLUSH errors as \"expected\""}},{"before":"cd3e6b4f4c5e0b514f3e76e194b2a5753264d44f","after":"26d49fec5f862818a0410fedbba1efded0543374","ref":"refs/heads/master","pushedAt":"2024-04-19T23:07:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"tests/quota: consistently clear quota property between tests\n\nWhen run in isolation, quota_005_pos would fail in cleanup because it\nwould attempt restore the previous quota, which was 0, and so get an\nerror (because you can't set quota to '0', you have to use 'none').\n\nIt worked as part of the quota tag set because the previous tests did\nnot clean up their quota, so there was always a non-zero quota to return\nto.\n\nThis adds a simple quota reset function, and has all quota tests run it\nat cleanup. For the ones that weren't cleaning up, they now do, and for\nquota_005_pos, which was trying to do the right thing, it now just\nresets it.\n\nSponsored-by: Klara, Inc.\nSponsored-by: Wasabi Technology, Inc.\nReviewed-by: Brian Behlendorf \nReviewed-by: George Melikov \nSigned-off-by: Rob Norris \nCloses #16097","shortMessageHtmlLink":"tests/quota: consistently clear quota property between tests"}},{"before":"575872cc37a744928223dae2c24964d06f670e2d","after":"72e4996a54fe54b93bf1e667a5e60099375fe08f","ref":"refs/heads/zfs-2.2.4-staging","pushedAt":"2024-04-19T17:19:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"bdev_discard_supported: understand discard_granularity=0\n\nKernel documentation for the discard_granularity property says:\n\n A discard_granularity of 0 means that the device does not support\n discard functionality.\n\nSome older kernels had drivers (notably loop, but also some USB-SATA\nadapters) that would set the QUEUE_FLAG_DISCARD capability flag, but\nhave discard_granularity=0. Since 5.10 (torvalds/linux@b35fd7422c2f) the\ndiscard entry point blkdev_issue_discard() has had a check for this,\nwhich would immediately reject the call with EOPNOTSUPP, and throw a\nscary diagnostic message into the log. See #16068.\n\nSince 6.8, the block layer sets a non-zero default for\ndiscard_granularity (torvalds/linux@3c407dc723bb), and a future kernel\nwill remove the check entirely[1].\n\nAs such, there's no good reason for us to enable discard when\ndiscard_granularity=0. The kernel will never let the request go in\nanyway; better that we just disable it so we can report it properly to\nthe user.\n\n1. https://patchwork.kernel.org/project/linux-block/patch/20240312144826.1045212-2-hch@lst.de/\n\nSponsored-by: Klara, Inc.\nSponsored-by: Wasabi Technology, Inc.\nSigned-off-by: Rob Norris \n(cherry picked from commit b181b2e604de3f36feab1092c702cdec5e78c693)","shortMessageHtmlLink":"bdev_discard_supported: understand discard_granularity=0"}},{"before":"35bf2584852d47a666a0ae3d1c6903c367e8f169","after":"cd3e6b4f4c5e0b514f3e76e194b2a5753264d44f","ref":"refs/heads/master","pushedAt":"2024-04-19T17:19:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Add zfetch stats in arcstats\n\narc_summary also reports zfetch stats but it's inconvenient to monitor\r\ncontiguously incrementing numbers. Adding them in arcstats allows us to\r\nobserve streams more conveniently.\r\n\r\nReviewed-by: Brian Behlendorf \r\nReviewed-by: Alexander Motin \r\nSigned-off-by: Ameer Hamza \r\nCloses #16094","shortMessageHtmlLink":"Add zfetch stats in arcstats"}},{"before":"454c0b0e46eca93a9d6af262c41b56987b15928e","after":"35bf2584852d47a666a0ae3d1c6903c367e8f169","ref":"refs/heads/master","pushedAt":"2024-04-19T17:15:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"behlendorf","name":"Brian Behlendorf","path":"/behlendorf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148917?s=80&v=4"},"commit":{"message":"Fix: FreeBSD Arm64 does not build currently\n\nThe define LD_VERSION isn't defined on FreeBSD Arm64 when OpenZFS is\r\nbuild with the default compiler: clang.\r\nI used only gcc for testing - my fault.\r\n\r\nFast fix as suggested by @mmatuska\r\n\r\nReviewed-by: Tony Hutter \r\nReviewed-by: Brian Behlendorf \r\nSigned-off-by: Martin Matuska \r\nSigned-off-by: Tino Reichardt \r\nCloses #16103","shortMessageHtmlLink":"Fix: FreeBSD Arm64 does not build currently"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQPP8JQA","startCursor":null,"endCursor":null}},"title":"Activity ยท openzfs/zfs"}