summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2015-08-18 20:42:08 +0000
committerjasone <jasone@FreeBSD.org>2015-08-18 20:42:08 +0000
commit94992aff557f30dd7ba8b64c36714e12b3617193 (patch)
tree1577fd8ee75536e29fbafe2ffc62c33943b2a425
parent725028ad293ab9fc384615e456103b1adb7fb624 (diff)
downloadFreeBSD-src-94992aff557f30dd7ba8b64c36714e12b3617193.zip
FreeBSD-src-94992aff557f30dd7ba8b64c36714e12b3617193.tar.gz
Define CPU_SPINWAIT as cpu_spinwait().
Submitted by: cem
-rw-r--r--contrib/jemalloc/FREEBSD-diffs16
-rw-r--r--contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h12
2 files changed, 12 insertions, 16 deletions
diff --git a/contrib/jemalloc/FREEBSD-diffs b/contrib/jemalloc/FREEBSD-diffs
index 8452677..58f5f6f 100644
--- a/contrib/jemalloc/FREEBSD-diffs
+++ b/contrib/jemalloc/FREEBSD-diffs
@@ -117,10 +117,10 @@ index dbf6aa7..f87dba8 100644
jemalloc_postfork_child
diff --git a/include/jemalloc/jemalloc_FreeBSD.h b/include/jemalloc/jemalloc_FreeBSD.h
new file mode 100644
-index 0000000..c5113b9
+index 0000000..737542e
--- /dev/null
+++ b/include/jemalloc/jemalloc_FreeBSD.h
-@@ -0,0 +1,144 @@
+@@ -0,0 +1,142 @@
+/*
+ * Override settings that were generated in jemalloc_defs.h as necessary.
+ */
@@ -135,7 +135,6 @@ index 0000000..c5113b9
+ * The following are architecture-dependent, so conditionally define them for
+ * each supported architecture.
+ */
-+#undef CPU_SPINWAIT
+#undef JEMALLOC_TLS_MODEL
+#undef STATIC_PAGE_SHIFT
+#undef LG_SIZEOF_PTR
@@ -145,7 +144,6 @@ index 0000000..c5113b9
+
+#ifdef __i386__
+# define LG_SIZEOF_PTR 2
-+# define CPU_SPINWAIT __asm__ volatile("pause")
+# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
+#endif
+#ifdef __ia64__
@@ -157,7 +155,6 @@ index 0000000..c5113b9
+#endif
+#ifdef __amd64__
+# define LG_SIZEOF_PTR 3
-+# define CPU_SPINWAIT __asm__ volatile("pause")
+# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
+#endif
+#ifdef __arm__
@@ -183,15 +180,16 @@ index 0000000..c5113b9
+# define JEMALLOC_TLS_MODEL /* Default. */
+#endif
+
-+#ifndef CPU_SPINWAIT
-+# define CPU_SPINWAIT do {} while (0)
-+#endif
-+
+#define STATIC_PAGE_SHIFT PAGE_SHIFT
+#define LG_SIZEOF_INT 2
+#define LG_SIZEOF_LONG LG_SIZEOF_PTR
+#define LG_SIZEOF_INTMAX_T 3
+
++#undef CPU_SPINWAIT
++#include <machine/cpu.h>
++#include <machine/cpufunc.h>
++#define CPU_SPINWAIT cpu_spinwait()
++
+/* Disable lazy-lock machinery, mangle isthreaded, and adjust its type. */
+#undef JEMALLOC_LAZY_LOCK
+extern int __isthreaded;
diff --git a/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h b/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
index c5113b9..737542e 100644
--- a/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
+++ b/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
@@ -12,7 +12,6 @@
* The following are architecture-dependent, so conditionally define them for
* each supported architecture.
*/
-#undef CPU_SPINWAIT
#undef JEMALLOC_TLS_MODEL
#undef STATIC_PAGE_SHIFT
#undef LG_SIZEOF_PTR
@@ -22,7 +21,6 @@
#ifdef __i386__
# define LG_SIZEOF_PTR 2
-# define CPU_SPINWAIT __asm__ volatile("pause")
# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
#endif
#ifdef __ia64__
@@ -34,7 +32,6 @@
#endif
#ifdef __amd64__
# define LG_SIZEOF_PTR 3
-# define CPU_SPINWAIT __asm__ volatile("pause")
# define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
#endif
#ifdef __arm__
@@ -60,15 +57,16 @@
# define JEMALLOC_TLS_MODEL /* Default. */
#endif
-#ifndef CPU_SPINWAIT
-# define CPU_SPINWAIT do {} while (0)
-#endif
-
#define STATIC_PAGE_SHIFT PAGE_SHIFT
#define LG_SIZEOF_INT 2
#define LG_SIZEOF_LONG LG_SIZEOF_PTR
#define LG_SIZEOF_INTMAX_T 3
+#undef CPU_SPINWAIT
+#include <machine/cpu.h>
+#include <machine/cpufunc.h>
+#define CPU_SPINWAIT cpu_spinwait()
+
/* Disable lazy-lock machinery, mangle isthreaded, and adjust its type. */
#undef JEMALLOC_LAZY_LOCK
extern int __isthreaded;
OpenPOWER on IntegriCloud