Files
mirror_zfs/module
Ryan Moeller fb3ad5d24e FreeBSD: Do zcommon_init sooner to avoid FPU panic
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
2020-12-23 14:34:59 -08:00
..
2020-09-03 16:17:18 -07:00
2020-10-30 16:03:37 -07:00
2020-09-03 16:17:18 -07:00
2020-11-17 12:20:09 -08:00
2020-06-10 09:24:15 -07:00
2020-10-16 12:55:56 -07:00
2020-06-10 09:24:15 -07:00
2020-08-20 10:30:06 -07:00
2020-10-16 13:01:14 -07:00