summaryrefslogtreecommitdiff
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
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
-rw-r--r--exception_lists/packaging1
-rw-r--r--manifest1
-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
5 files changed, 21 insertions, 3 deletions
diff --git a/exception_lists/packaging b/exception_lists/packaging
index 61f31d8ef4..3a9dbc1351 100644
--- a/exception_lists/packaging
+++ b/exception_lists/packaging
@@ -45,7 +45,6 @@ usr/include/auth_list.h
usr/include/bsm/audit_door_infc.h
usr/include/bsm/audit_private.h
usr/include/bsm/devalloc.h
-usr/include/demangle-sys.h
usr/include/getxby_door.h
usr/include/passwdutil.h
usr/include/priv_utils.h
diff --git a/manifest b/manifest
index 20c1f7192f..37d492e044 100644
--- a/manifest
+++ b/manifest
@@ -3177,6 +3177,7 @@ f usr/include/dat/udat_config.h 0644 root bin
f usr/include/dat/udat_redirection.h 0644 root bin
f usr/include/dat/udat_vendor_specific.h 0644 root bin
f usr/include/deflt.h 0644 root bin
+f usr/include/demangle-sys.h 0644 root bin
d usr/include/des 0755 root bin
f usr/include/des/des.h 0644 root bin
f usr/include/des/desdata.h 0644 root bin
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)