-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add support for FreeBSD #8987
Add support for FreeBSD #8987
Conversation
673caef
to
d51c99b
Compare
include/sys/abd.h
Outdated
uint_t abd_nents; | ||
struct scatterlist *abd_sgl; | ||
#endif | ||
} abd_scatter; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do wonder if #if linux
around the scatterlist
wouldn't be easier, or it'll be
#if ( defined(__FreeBSD__) || defined(__APPLE__) || defined(_WIN32)) && defined(_KERNEL)
But don't change anything, just curious what people think, is reducing #ifdefs even on the agenda just yet? I'm probably here waaay too early
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lundman your timing is perfect! Reducing the #ifdefs
is definitely on the agenda as is any additional refactoring we should be considering to make things easier when adding additional platforms.
d51c99b
to
e0f971d
Compare
9e6ea37
to
4df3869
Compare
This brings us up to date with the code currently in review in: openzfs/zfs#8987 git-svn-id: svn+ssh://svn.freebsd.org/ports/head@506233 35697150-7ecd-e111-bb59-0022644237b5
This brings us up to date with the code currently in review in: openzfs/zfs#8987
d63de7c
to
ff98df6
Compare
This brings us up to date with the code currently in review in: openzfs/zfs#8987 git-svn-id: svn+ssh://svn.freebsd.org/ports/head@506233 35697150-7ecd-e111-bb59-0022644237b5
e6ea76b
to
137b90d
Compare
NB, when building packages, such as rpm, the build system looks for shebang in files to generate the package dependencies. Thus you will need to ensure the dependency on python3 in packages remains. |
7db8ab1
to
774a635
Compare
9b19313
to
4e4e10c
Compare
a274154
to
178bcd7
Compare
178bcd7
to
8bbe4fa
Compare
6e0563f
to
85d3c6f
Compare
Codecov Report
@@ Coverage Diff @@
## master #8987 +/- ##
==========================================
- Coverage 79.48% 79.30% -0.19%
==========================================
Files 387 388 +1
Lines 123388 123386 -2
==========================================
- Hits 98079 97855 -224
- Misses 25309 25531 +222
Continue to review full report at Codecov.
|
93b0a2f
to
d3718e3
Compare
- Import FreeBSD specific parts Signed-off-by: Matt Macy <mmacy@FreeBSD.org> Co-authored-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Requires-builders: arch,style,coverage,amazon2,centos7,debian10,ubuntu16,ubuntu18,builtin,freebsd12,freebsd13
d3718e3
to
69c630f
Compare
Add the FreeBSD platform code to the OpenZFS repository. As of this commit the source can be compiled and tested on FreeBSD 11 and 12. Subsequent commits are now required to compile on FreeBSD and Linux. Additionally, they must pass the ZFS Test Suite on FreeBSD which is being run by the CI. As of this commit 1230 tests pass on FreeBSD and there are no unexpected failures. Reviewed-by: Sean Eric Fagan <sef@ixsystems.com> Reviewed-by: Jorgen Lundman <lundman@lundman.net> Reviewed-by: Richard Laager <rlaager@wiktel.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Co-authored-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Matt Macy <mmacy@FreeBSD.org> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes openzfs#898 Closes openzfs#8987
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>
This applies the same change in #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 #7795 [^5] * @mattmacy forked the OpenZFS repo and began to add FreeBSD support * OpenZFS PR #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 #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]: #9115 [^2]: #8987 [^3]: freebsd/freebsd-src@10b9d77 [^4]: illumos/illumos-gate@5aaeed5 [^5]: #7795 Sponsored by: Axcient Reviewed-by: Allan Jude <allan@klarasystems.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Alan Somers <asomers@gmail.com> Closes #16268
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 Reviewed-by: Allan Jude <allan@klarasystems.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Alan Somers <asomers@gmail.com> Closes openzfs#16268
Motivation and Context
This adds support for FreeBSD to ZoL. Adding FreeBSD support to ZoL will make it easier to move changes back and forth between FreeBSD and Linux.
Description
How Has This Been Tested?
Adapted ZTS and have all tests that pass on HEAD passing on ZoF. Allan Jude and some developers have been using it personally.
Types of changes
Checklist:
Signed-off-by
.