e0716250bf
There has been a panic affecting some system configurations where the thread FPU context is disturbed during the fletcher 4 benchmarks, leading to a panic at boot. module_init() registers zcommon_init to run in the last subsystem (SI_SUB_LAST). Running it as soon as interrupts have been configured (SI_SUB_INT_CONFIG_HOOKS) makes sure we have finished the benchmarks before we start doing other things. While it's not clear *how* the FPU context was being disturbed, this does seem to avoid it. Add a module_init_early() macro to run zcommon_init() at this earlier point on FreeBSD. On Linux this is defined as module_init(). Authored by: Konstantin Belousov <kib@FreeBSD.org> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes #11302 |
||
---|---|---|
.. | ||
cityhash.c | ||
Makefile.in | ||
zfeature_common.c | ||
zfs_comutil.c | ||
zfs_deleg.c | ||
zfs_fletcher_aarch64_neon.c | ||
zfs_fletcher_avx512.c | ||
zfs_fletcher_intel.c | ||
zfs_fletcher_sse.c | ||
zfs_fletcher_superscalar4.c | ||
zfs_fletcher_superscalar.c | ||
zfs_fletcher.c | ||
zfs_namecheck.c | ||
zfs_prop.c | ||
zfs_uio.c | ||
zpool_prop.c | ||
zprop_common.c |