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

Linux: bump minimum kernel version to 4.18 #16479

Closed
wants to merge 104 commits into from
Closed

Conversation

robn
Copy link
Member

@robn robn commented Aug 26, 2024

Motivation and Context

I started cutting things out in #16434. Everyone loved it, and wanted more. I'm nothing if not a crowd pleaser!

Description

Just like last time, but this time the minimum is 4.18, as the base kernel for RHEL8.

Since last time, more stuff removed. Following comments there, I've left DECLARE_EVENT_CLASS, and the baseline checks.

How Has This Been Tested?

Compile checked on kernel.org kernels:

  • 4.19.319
  • 5.4.281
  • 5.10.223
  • 5.15.164
  • 6.1.102
  • 6.2.16
  • 6.3.13
  • 6.4.16
  • 6.5.13
  • 6.6.43
  • 6.7.12
  • 6.8.12
  • 6.9.12
  • 6.10.3
  • 6.11.0

And on following distros:

  • 5.4.0-84-generic (Ubuntu 18.04)
  • 5.13.0-30-generic (Ubuntu 20.04)
  • 5.15.0-25-generic (Ubuntu 22.04)
  • 6.8.0-31-generic (Ubuntu 24.04)
  • 4.18.0-348.7.1.el8_5.x86_64 (CentOS 8.4.2105)
  • 4.18.0-553.8.1.el8_10.x86_64 (Rocky 8.6)
  • 5.14.0-427.28.1.el9_4.x86_64 (Rocky 9)
  • 6.10.5-200.fc40.x86_64 (Fedora 40)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Library ABI change (libzfs, libzfs_core, libnvpair, libuutil and libzfsbootenv)
  • Documentation (a change to man pages or other documentation)

Checklist:

@tonyhutter
Copy link
Contributor

Did you intend to remove config/intlmacosx.m4?

@tonyhutter
Copy link
Contributor

Other than my comments above, I don't see any issues. Thank you for all this hard work!

@robn
Copy link
Member Author

robn commented Sep 6, 2024

Did you intend to remove config/intlmacosx.m4?

Yes. Again, I can't see that anything ever used the defines (HAVE_CFPREFERENCESCOPYAPPVALUE, HAVE_CFLOCALECOPYCURRENT, HAVE_CFLOCALECOPYPREFERREDLANGUAGES) or the substitution (INTL_MACOSX_LIBS), and there's nothing in the history to suggest why it was added.

@tonyhutter
Copy link
Contributor

Its general cleanups - nothing checks the ZFS_IS_GPL_COMPATIBLE, and I can't see that anything ever did.

Again, I can't see that anything ever used the defines (HAVE_CFPREFERENCESCOPYAPPVALUE, HAVE_CFLOCALECOPYCURRENT, HAVE_CFLOCALECOPYPREFERREDLANGUAGES) or the substitution (INTL_MACOSX_LIBS), and there's nothing in the history to suggest why it was added.

Ah I see now. Yea, looks like dead code, let's keep it removed.

@amotin amotin mentioned this pull request Sep 10, 2024
17 tasks
Copy link
Contributor

@mcmilk mcmilk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs a rebase and some mods within these files:
./module/os/linux/zfs/zpl_file.c
./config/kernel-vfs-direct_IO.m4
./config/kernel.m4
./config/kernel-vfs-iov_iter.m4

LGTM 👍

@robn
Copy link
Member Author

robn commented Sep 16, 2024

Yep, was on it last night but I got tired.

Last push rebased. Compile checks have been redone (kernel versions updated in original post), and results checked again.

I've got a couple more rounds of testing in progress just to be totally sure, but I'm pretty confident this is good.

(update: lgtm)

@behlendorf
Copy link
Contributor

Thanks for the quick rebase of this Rob. I'll review this today so we can get it in.

@behlendorf behlendorf added the Status: Code Review Needed Ready for review and testing label Sep 16, 2024
@amotin
Copy link
Member

amotin commented Sep 16, 2024

As I have mentioned in the Direct I/O PR, it seems config/kernel-get-user-pages.m4 added there could be completely removed.

@mcmilk
Copy link
Contributor

mcmilk commented Sep 17, 2024

Debian 11 seems to have problems:

Since the two runs fail the same way, there seems sth. bad to happen :(

@behlendorf behlendorf added Status: Accepted Ready to integrate (reviewed, tested) and removed Status: Code Review Needed Ready for review and testing labels Sep 17, 2024
@behlendorf
Copy link
Contributor

behlendorf commented Sep 17, 2024

@mcmilk good catch, I see things are passing in with Debian 11 in your QEMU PR against master so this does seem like a regression. Passing CI run, https://github.com/openzfs/zfs/actions/runs/10899160824/job/30243940242

It does look we we can shed config/kernel-get-user-pages.m4 but we can always follow up with a PR for this.

@robn
Copy link
Member Author

robn commented Sep 17, 2024

Kernel for Debian 11 builders appears to be 5.10.223. That's in my test set, so it builds and passes basic sanity checks, so most likely I've removed something that caused it to use a non-working fallback or something like that. I'll check it out today or tomorrow.

This sets RHEL8's base kernel[1] as the floor, and includes the oldest
kernel.org LTS (4.19).

1. https://access.redhat.com/articles/3078#RHEL8

Sponsored-by: https://despairlabs.com/sponsor/
Signed-off-by: Rob Norris <[email protected]>
All of these set a #define that doesn't appear anywhere in the tree.

Sponsored-by: https://despairlabs.com/sponsor/
Signed-off-by: Rob Norris <[email protected]>
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
get_user_pages_unlocked() had stabilised by 4.9.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
behlendorf pushed a commit that referenced this pull request Sep 18, 2024
It always failed from "unused variable" warnings-errors. The resulting
`#define page_mapping(...)` happend to work because it always overrode
the kernel's function prototype, but that's brittle.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16479
@behlendorf
Copy link
Contributor

Merged thanks again for working through all of these config checks!

@robn
Copy link
Member Author

robn commented Sep 19, 2024

Nice, thanks! And thanks everyone for the great feedback and testing. This will make things much easier going forward :)

robn added a commit to robn/zfs that referenced this pull request Sep 19, 2024
Following 2b06976 (openzfs#16479), anything gated on a kernel version before
4.18 can be always included/excluded.

Sponsored-by: https://despairlabs.com/sponsor/
Signed-off-by: Rob Norris <[email protected]>
behlendorf pushed a commit that referenced this pull request Sep 19, 2024
Following 2b06976 (#16479), anything gated on a kernel version before
4.18 can be always included/excluded.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed by: Brian Behlendorf <[email protected]>
Reviewed-by: Alexander Motin <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16545
mcmilk pushed a commit to mcmilk/zfs that referenced this pull request Sep 20, 2024
Following 2b06976 (openzfs#16479), anything gated on a kernel version before
4.18 can be always included/excluded.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed by: Brian Behlendorf <[email protected]>
Reviewed-by: Alexander Motin <[email protected]>
Reviewed-by: Tino Reichardt <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes openzfs#16545
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Accepted Ready to integrate (reviewed, tested)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants