[LU-16053] osd-zfs build system update Created: 28/Jul/22  Updated: 01/Aug/23

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Upstream

Type: Improvement Priority: Minor
Reporter: Brian Behlendorf Assignee: Brian Behlendorf
Resolution: Unresolved Votes: 0
Labels: build, llnl, zfs

Issue Links:
Related
is related to LU-13485 Enable parallel compile tests during ... Closed
Epic/Theme: zfs
Rank (Obsolete): 9223372036854775807

 Description   

While reviewing the OpenZFS kernel interface checks I noticed that there were some improvements which could be made.  I propose making the following changes (patches to follow).

  1. Enforce a minimum ZFS version of 0.7.0 (released in July 2017).  This version provides the required interfaces for all major features expected by Lustre (quotas, multihost), and dropping support for older versions let's us remove some dead code.  Setting a minimum version also allows us to fail cleanly at configure time if a required interface isn't available.
  2. Update the lustre-build-zfs.m4 checks to use the parallel build functionality from LU-13485.  This reduces the ZFS configure check time to just a few seconds.
  3. Update all the checks to have consistent output and be a little more strict to catch as much as possible during configure.


 Comments   
Comment by Brian Behlendorf [ 28/Jul/22 ]

"Brian Behlendorf <behlendorf1@llnl.gov>" uploaded a new patch: https://review.whamcloud.com/48068
Subject: LU-16035 build: osd-zfs use parallel configure macros
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 9abee6ba2e88b9dbf966cdf115046dca4e212569

Comment by Andreas Dilger [ 28/Jul/22 ]

Hmm, strange that Gerrit didn't automatically add comments here for all of the patches... There was a system outage yesterday, so that might be the reason.

Comment by Brian Behlendorf [ 28/Jul/22 ]

That was actually my fault, I accidentally used the wrong LU number when I first pushed the patches.  I pushed a second version to correct it, but Gerrit linked them to 16035 instead of 16053.  If possible you might want to just delete those Gerrit comments in the other issue to avoid confusion.

Comment by Gerrit Updater [ 28/Jul/22 ]

"Brian Behlendorf <behlendorf1@llnl.gov>" uploaded a new patch: https://review.whamcloud.com/48076
Subject: LU-16053 build: add project quota configure check
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 73e002b407edb1abd6e98012c06300a460ea768c

Comment by Gerrit Updater [ 28/Jul/22 ]

"Brian Behlendorf <behlendorf1@llnl.gov>" uploaded a new patch: https://review.whamcloud.com/48077
Subject: LU-16053 build: remove obsolete ZFS configure checks
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: b0c2b5dcb7d3a275d00820f8d3bb3b30075fafeb

Comment by Gerrit Updater [ 22/May/23 ]

"Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/51082
Subject: LU-16053 zfs: fix dmu_offset_next() check
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 73c7c72204da1618b0d90d86d66d07be9e227535

Comment by Shaun Tancheff [ 23/May/23 ]

Splitting the configure fix for dmu_offset_next to a separate patch because the associated sanity test for SEEK_HOLE and SEEK_DATA are failing for ZFS.

My testing suggests that dmu_offset_next() never returns EBUSY. I updated SEEK_HOLE and SEEK_DATA operations to explicitly sync before attempting dmu_offset_next() which improves the situation but there is still issues. The server side sync before lseek is not sufficient for reliable operation.

Writing a new data segment to a sparse file also fails in most cases.

Comment by Gerrit Updater [ 01/Aug/23 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/48089/
Subject: LU-16053 build: Update zfs configure checks
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 46938c53461d136b71a32c4951b1776e2d226648

Generated at Sat Feb 10 03:23:35 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.