svn commit: r329388 - head/sys/contrib/ck/include
Olivier Houchard
cognet at FreeBSD.org
Fri Feb 16 17:50:07 UTC 2018
Author: cognet
Date: Fri Feb 16 17:50:06 2018
New Revision: 329388
URL: https://svnweb.freebsd.org/changeset/base/329388
Log:
Define CK_MD_TSO for the relevant arches (i386, amd64 and sparc64).
Defaulting to CK_MD_RMO has the unfortunate side effect of generating
memory barriers that are useless on those arches, and the even more
unfortunate side effect of generating lfence/sfence/mfence on i386, even
if older CPUs don't support it.
This should fix the panic reported when using IPFW on a Pentium 3.
Note that mfence and sfence might still be used in a few case, but that
shouldn't happen in FreeBSD right now, and should be fixed upstream first.
MFC after: 1 week
Modified:
head/sys/contrib/ck/include/ck_md.h
Modified: head/sys/contrib/ck/include/ck_md.h
==============================================================================
--- head/sys/contrib/ck/include/ck_md.h Fri Feb 16 17:46:07 2018 (r329387)
+++ head/sys/contrib/ck/include/ck_md.h Fri Feb 16 17:50:06 2018 (r329388)
@@ -53,10 +53,6 @@
#define CK_PR_DISABLE_DOUBLE
#endif /* CK_PR_DISABLE_DOUBLE */
-#ifndef CK_MD_RMO
-#define CK_MD_RMO
-#endif /* CK_MD_RMO */
-
#define CK_VERSION "0.6.0"
#define CK_GIT_SHA ""
@@ -65,11 +61,20 @@
*/
#if defined(__i386__) && !defined(__x86__)
#define __x86__
+#define CK_MD_TSO
+#elif defined(__amd64__)
+#define CK_MD_TSO
#elif defined(__sparc64__) && !defined(__sparcv9__)
#define __sparcv9__
+#define CK_MD_TSO
#elif defined(__powerpc64__) && !defined(__ppc64__)
#define __ppc64__
#elif defined(__powerpc__) && !defined(__ppc__)
#define __ppc__
#endif
+
+#if !defined(CK_MD_RMO) && !defined(CK_MD_TSO) && !defined(CK_MD_PSO)
+#define CK_MD_RMO
+#endif
+
#endif /* CK_MD_H */
More information about the svn-src-all
mailing list