summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorDan McDonald <danmcd@joyent.com>2021-06-28 10:32:02 -0400
committerDan McDonald <danmcd@joyent.com>2021-06-28 10:32:02 -0400
commita9d20b9166ac45a1b7102765f021356c7236bbfd (patch)
treec5f8b56f0da004aa779b452ec9065efe58568044 /usr/src
parent4c8f460b8f7bb0b730a931234810089f62a23d7e (diff)
parent3b3c8f601c5530d4928a71e238c573c623491c34 (diff)
downloadillumos-joyent-a9d20b9166ac45a1b7102765f021356c7236bbfd.tar.gz
[illumos-gate merge]
commit 3b3c8f601c5530d4928a71e238c573c623491c34 13776 ship demangle-sys.h commit fd440315ab0e76440256b0b1ca08098f64bc7832 13908 disable kernel FPU by default until it is stable
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/pkg/manifests/system-library-demangle.mf2
-rw-r--r--usr/src/uts/common/fs/zfs/spa_misc.c9
-rw-r--r--usr/src/uts/common/fs/zfs/sys/simd.h11
3 files changed, 20 insertions, 2 deletions
diff --git a/usr/src/pkg/manifests/system-library-demangle.mf b/usr/src/pkg/manifests/system-library-demangle.mf
index 47d153b96d..38d2efaa80 100644
--- a/usr/src/pkg/manifests/system-library-demangle.mf
+++ b/usr/src/pkg/manifests/system-library-demangle.mf
@@ -30,8 +30,10 @@ set name=pkg.summary value="Symbol demangling support"
set name=info.classification value=org.opensolaris.category.2008:System/Core
set name=variant.arch value=$(ARCH)
dir path=usr group=sys
+dir path=usr/include
dir path=usr/lib
dir path=usr/lib/$(ARCH64)
+file path=usr/include/demangle-sys.h
file path=usr/lib/$(ARCH64)/libdemangle-sys.so.1
file path=usr/lib/libdemangle-sys.so.1
license lic_CDDL license=lic_CDDL
diff --git a/usr/src/uts/common/fs/zfs/spa_misc.c b/usr/src/uts/common/fs/zfs/spa_misc.c
index c9ceeb6873..dd44829a43 100644
--- a/usr/src/uts/common/fs/zfs/spa_misc.c
+++ b/usr/src/uts/common/fs/zfs/spa_misc.c
@@ -316,6 +316,15 @@ uint64_t zfs_deadman_checktime_ms = 5000ULL;
*/
int zfs_deadman_enabled = -1;
+#if defined(__amd64__) || defined(__i386__)
+/*
+ * Should we allow the use of mechanisms that depend on saving and restoring
+ * the FPU state? This is currently off by default due to stability issues in
+ * the kernel FPU routines; e.g., see bug 13717.
+ */
+int zfs_fpu_enabled = 0;
+#endif
+
/*
* The worst case is single-sector max-parity RAID-Z blocks, in which
* case the space requirement is exactly (VDEV_RAIDZ_MAXPARITY + 1)
diff --git a/usr/src/uts/common/fs/zfs/sys/simd.h b/usr/src/uts/common/fs/zfs/sys/simd.h
index c504e00326..1ee17c902d 100644
--- a/usr/src/uts/common/fs/zfs/sys/simd.h
+++ b/usr/src/uts/common/fs/zfs/sys/simd.h
@@ -18,8 +18,6 @@
#if defined(__amd64__) || defined(__i386__)
-
-#define kfpu_allowed() 1
#define kfpu_initialize(tsk) do {} while (0)
#define kfpu_init() (0)
#define kfpu_fini() do {} while (0)
@@ -32,6 +30,14 @@
#include <sys/disp.h>
#include <sys/cpuvar.h>
+static inline int
+kfpu_allowed(void)
+{
+ extern int zfs_fpu_enabled;
+
+ return (zfs_fpu_enabled != 0 ? 1 : 0);
+}
+
static inline void
kfpu_begin(void)
{
@@ -99,6 +105,7 @@ zfs_avx2_available(void)
#include <sys/auxv.h>
#include <sys/auxv_386.h>
+#define kfpu_allowed() 1
#define kfpu_begin() do {} while (0)
#define kfpu_end() do {} while (0)