-
Notifications
You must be signed in to change notification settings - Fork 254
BTRFS and 6.14 kernels #978
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
Comments
You can use
If you can mount the filesystem, the current csum will be printed to dmesg:
It is possible as an experimental feature to change csum type using |
I think it would be best to not mess with experimental features if possible. I know I'm probably barking up the wrong tree, but what kernel modules, if any, are needed now? Currently I have:
|
Just to add, I am using |
Module dependencies can be found in the output of
For crc32c there's some magic to load the accelerated module so it does not appear in the list. |
There's a few ways to check what what checksum Btrfs is using:
|
Doesn't it "just work" now because btrfs.ko has a softdep on "crc32c" which is one of the aliases of "crc32c_generic.ko"? FWIW "crc32c_generic.ko" is going to be renamed to "crc32c.ko" in 6.16, but it should not matter, since there should be no need to explicitly list it anymore --- it should get included in the initramfs automatically via the softdep. (I guess people got in the habit of explicitly listing "crc32c-intel.ko", so they feel like they should still be listing something. But it is not needed anymore.) |
(But for SHA-256 you still need to explicitly list sha256_ssse3.ko. I will be fixing that next...) |
No, it doesn't "just work" -- you do, in fact, need to add "crc32c_generic" to the list of modules included in the initramfs. When 6.14 dropped, I spent several hours experimenting different kernel options and included modules to figure out what I really needed. If you don't include "crc32c_generic" in the initramfs, then Btrfs will use the software implementation, not the hardware one. I noticed this because my root partition loaded with I can't do a quick test right now with CRC32c because I'm using SHA256, but I can tell you that the same thing happens with SHA256: root loads with Tools like Dracut seem to only pull in dependencies if they are a hard dependency. Btrfs has the checksum algorithms as a soft dependency -- as in, they are not required for Btrfs to function. We can verify this with When I don't include "sha256_ssse3", Also notice in the When I do include "sha256_ssse3", |
I don't think this is plausible, as the same module provides the crypto API support for both the generic and arch-optimized algorithms now. |
But again, I'm just talking about crc32c. sha256 is still broken. |
So I decided to bite the bullet after reading comments here and remove what was being complained about using mkinitcpio and nothing seems broken that wasn't before. But from reading this conversation it's clear the whole module dependency hierarchy conveying and naming of this stuff is a giant cr*p show and should probably be done better. Also, why not just ignore the modules instead of throwing an error? |
Yes, for 6.14 and later kernels just remove crc32c-intel.ko from your initramfs if you had added it to there at some point. It is not needed anymore. Also see https://www.reddit.com/r/linux_gaming/comments/1jvqtyn/no_arch_linux_kernel_builds_are_not_broken/. |
See what? It doesn't take me anywhere. And if it's no longer possible to build initramfs as you could before because of kernel changes, yes, it is broken. Edit: I have that person blocked. Of course the schizo moderators let that up instead of letting any corrections be made in the comments of the post that I made. |
While i'm at it, I'm just going to point out that, you're suggesting only "crc32c-intel" be removed when in fact it's three modules that needed to be removed. So just to recap:
This is complete and utter madness that, if done by Microsoft, would result in a PR crap storm of epic proportions, but in Linux land this kind of thing is just par for the course. No one bats and eye and anyone who questions it gets labeled a troll. |
Oh, and just to add since I somehow didn't think of it:
Returned |
Right, which is why someone answered that question. If you have a different problem that you're trying to solve, you should clearly explain that problem. It sounds like the actual problem that you're trying to solve is that you're getting an initramfs build error due to "crc32c-intel" no longer existing. Again, the solution is to just remove that module. There's no need to manually add accelerated CRC modules to the initramfs anymore. Out of curiosity, which Linux distro are you using, and do you know how crc32c-intel got into your list of initramfs modules in the first place? |
The command inspect-internal always shows just the algorithm name, so it was always |
Hi,
I'm not sure if this is the place to ask but what is the advisable way to update here? How do you check what checksum is being used? How do you change it?
Please see this issue: https://bbs.archlinux.org/viewtopic.php?id=304822 for context.
The text was updated successfully, but these errors were encountered: