Actions
Bug #13908
closeddisable kernel FPU by default until it is stable
Start date:
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:
Description
We have had a series of issues with the kernel FPU mechanism, the most recent of which is described in #13902. To allow more time for diagnostics, we should surgically disable the use of mechanism within ZFS. We'll leave a tunable that users may set in /etc/system
if they wish to enable the mechanism at their own risk; e.g., for debugging purposes.
Related issues
Updated by Joshua M. Clulow almost 2 years ago
- Subject changed from disable kernel by default FPU until it is stable to disable kernel FPU by default until it is stable
Updated by Joshua M. Clulow almost 2 years ago
- Related to Bug #13717: kernel fpu use can still lead to panic added
Updated by Joshua M. Clulow almost 2 years ago
- Related to Feature #12478: installctx needs kpreempt_disable protection added
Updated by Joshua M. Clulow almost 2 years ago
- Related to Bug #13902: Fix for 13717 may break 8-disk raidz2 added
Updated by Joshua M. Clulow almost 2 years ago
Testing Notes¶
I built the patch and installed with onu
and confirmed that we were using the non-FPU versions of the raidz routines.
Before Change¶
$ pfexec mdb -ke 'zfs_vdev_raidz_impl/X; vdev_raidz_fastest_impl::print' zfs_vdev_raidz_impl: zfs_vdev_raidz_impl: ffffffff { init = 0 fini = 0 gen = [ avx2_gen_p, avx2_gen_pq, avx2_gen_pqr ] rec = [ avx2_rec_p, avx2_rec_q, avx2_rec_r, avx2_rec_pq, avx2_rec_pr, avx2_rec_qr, avx2_rec_pqr ] is_supported = 0 name = [ "fastest" ] }
After Change¶
$ pfexec mdb -ke 'zfs_vdev_raidz_impl/X; vdev_raidz_fastest_impl::print' zfs_vdev_raidz_impl: zfs_vdev_raidz_impl: ffffffff { init = 0 fini = 0 gen = [ scalar_gen_p, scalar_gen_pq, scalar_gen_pqr ] rec = [ scalar_rec_p, scalar_rec_q, scalar_rec_r, scalar_rec_pq, scalar_rec_pr, scalar_rec_qr, scalar_rec_pqr ] is_supported = 0 name = [ "fastest" ] }
Tunable¶
I confirmed that ...
# echo 'set zfs:zfs_fpu_enabled = 1' > /etc/system.d/enable_fpu # reboot
... is enough to re-enable the AVX routines on this system.
Updated by Electric Monk almost 2 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit fd440315ab0e76440256b0b1ca08098f64bc7832
commit fd440315ab0e76440256b0b1ca08098f64bc7832 Author: Joshua M. Clulow <josh@sysmgr.org> Date: 2021-06-26T04:45:53.000Z 13908 disable kernel FPU by default until it is stable Reviewed by: Jason King <jason.brian.king@gmail.com> Reviewed by: Patrick Mooney <pmooney@pfmooney.com> Approved by: Dan McDonald <danmcd@joyent.com>
Actions