Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make txg_wait_synced conditional in zfsvfs_teardown, for FreeBSD #16268

Merged
merged 1 commit into from
Aug 9, 2024

Commits on Jun 14, 2024

  1. Make txg_wait_synced conditional in zfsvfs_teardown, for FreeBSD

    This applies the same change in openzfs#9115 to FreeBSD.  This was actually the
    old behavior in FreeBSD 12; it only regressed when FreeBSD support was
    added to OpenZFS.  As far as I can tell, the timeline went like this:
    
    * Illumos's zfsvfs_teardown used an unconditional txg_wait_synced
    * Illumos added the dirty data check [^4]
    * FreeBSD merged in Illumos's conditional check [^3]
    * OpenZFS forked from Illumos
    * OpenZFS removed the dirty data check in openzfs#7795 [^5]
    * @mattmacy forked the OpenZFS repo and began to add FreeBSD support
    * OpenZFS PR openzfs#9115[^1] recreated the same dirty data check that Illumos
      used, in slightly different form.  At this point the OpenZFS repo did
      not yet have multi-OS support.
    * Matt Macy merged in FreeBSD support in openzfs#8987[^2] , but it was based on
      slightly outdated OpenZFS code.
    
    In my local testing, this vastly improves the reboot speed of a server
    with a large pool that has 1000 datasets and is resilvering an HDD.
    
    [^1]: openzfs#9115
    [^2]: openzfs#8987
    [^3]: freebsd/freebsd-src@10b9d77
    [^4]: illumos/illumos-gate@5aaeed5
    [^5]: openzfs#7795
    
    Sponsored by:	Axcient
    Signed-off-by:	Alan Somers <asomers@gmail.com>
    asomers committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    0b4ff90 View commit details
    Browse the repository at this point in the history