Bug 1874808
| Summary: | btrfs should use crc32c-intel instead of crc32c-generic on a SSE4.2 processor | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Uros Bizjak <ubizjak> |
| Component: | kernel | Assignee: | fedora-kernel-btrfs |
| Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | low | Docs Contact: | |
| Priority: | low | ||
| Version: | 32 | CC: | acaringi, airlied, bskeggs, davide, ego.cordatus, elxreno, hdegoede, ichavero, itamar, jarodwilson, jeremy, jforbes, jglisse, john.j5live, jonathan, josef, kernel-maint, lgoncalv, linville, masami256, mcatanza, mchehab, mjg59, ngompa13, steved, zawertun |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-11-06 12:41:55 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Uros Bizjak
2020-09-02 09:55:40 UTC
Probably CONFIG_CRYPTO_CRC32C_INTEL=m should be changed to =y because: CONFIG_BTRFS_FS=y I have the same issue on Ryzen 3300X and Fedora 33. But it works previously on old AMD CPU in Fedora 32 so not sure when this bug striked. $ lscpu | grep sse4_2 SSE 4.2 available. $ dmesg | grep crc32c [ 0.631456] Btrfs loaded, crc32c=crc32c-generic Users also reporting the same issue on 'Intel(R) Core(TM) i7-1065G7'. Users nuking their fresh f33 installations because of this bug and complain. That's sort of urgent bug. Josef, Justin, would switching CONFIG_CRYPTO_CRC32C_INTEL to 'y' actually resolve this issue? I'm somewhat skeptical myself... cat /sys/fs/btrfs/$(blkid info -o value -s UUID $DEVICE)/checksum will tell you which crc we're currently using. We just spit out whatever crypto library is currently loaded at the time, and since it can change this can be completely different later on. If the above command doesn't spit out crc32c-intel then it still doesn't really change, because again btrfs is just calling into the crypto library, so it can change arbitrarily while the file system is loaded. If you want to change the printk then by all means switch it to =Y, but it makes no difference practically speaking. Also, why exactly are users nuking an entire install because of the wrong crc mechanism? We didn't have built in crc32c for a while, and while it's certainly slower, it's not mind numbingly slow, this is how it worked before and thus we have a lot of async stuff built in to make it as fast as possible. It seems like a bit of an overreaction without first getting some clarity. (In reply to Josef Bacik from comment #5) Josef, i've answered here https://pagure.io/fedora-btrfs/project/issue/34#comment-699687 and i can't answer for those who nuked their fresh fedora 33. Thanks for explanation and sorry for noise. Probably need to document somehow this since Arch Wiki [1] for example still contain outdated information and other people could misinformed. [1]: https://wiki.archlinux.org/index.php/Btrfs#Checksum_hardware_acceleration I think at this point, we can safely judge this to not be a real bug. |