/hg/icedtea6: CACAO PR157: ARM SMP Assertion thinlock failed.
xranby at icedtea.classpath.org
xranby at icedtea.classpath.org
Fri Mar 11 06:52:37 PST 2011
changeset d6246ea07860 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d6246ea07860
author: Xerxes R?nby <xerxes at zafena.se>
date: Fri Mar 11 15:34:33 2011 +0100
CACAO PR157: ARM SMP Assertion thinlock failed.
2011-03-11 Xerxes Ranby <xerxes at zafena.se>
CACAO PR157: ARM SMP Assertion thinlock failed.
* NEWS: Updated.
* Makefile.am: Add new CACAO patch.
* patches/cacao/arm-memory-barrier.patch: New patch.
diffstat:
ChangeLog | 7 +++++
Makefile.am | 1 +
NEWS | 1 +
patches/cacao/arm-memory-barrier.patch | 44 ++++++++++++++++++++++++++++++++++
4 files changed, 53 insertions(+), 0 deletions(-)
diffs (85 lines):
diff -r 4cbe17b91cc8 -r d6246ea07860 ChangeLog
--- a/ChangeLog Wed Mar 09 10:50:40 2011 +0100
+++ b/ChangeLog Fri Mar 11 15:34:33 2011 +0100
@@ -1,3 +1,10 @@
+2011-03-11 Xerxes Ranby <xerxes at zafena.se>
+
+ CACAO PR157: ARM SMP Assertion thinlock failed.
+ * NEWS: Updated.
+ * Makefile.am: Add new CACAO patch.
+ * patches/cacao/arm-memory-barrier.patch: New patch.
+
2011-03-09 Pavel Tisnovsky <ptisnovs at redhat.com>
* Makefile.am: Add new patch.
diff -r 4cbe17b91cc8 -r d6246ea07860 Makefile.am
--- a/Makefile.am Wed Mar 09 10:50:40 2011 +0100
+++ b/Makefile.am Fri Mar 11 15:34:33 2011 +0100
@@ -352,6 +352,7 @@
patches/cacao/arm-arch-defines.patch \
patches/cacao/jsig.patch \
patches/cacao/memory.patch \
+ patches/cacao/arm-memory-barrier.patch \
patches/cacao/ignore-unknown-options.patch
endif
diff -r 4cbe17b91cc8 -r d6246ea07860 NEWS
--- a/NEWS Wed Mar 09 10:50:40 2011 +0100
+++ b/NEWS Fri Mar 11 15:34:33 2011 +0100
@@ -18,6 +18,7 @@
hotspot) with the jtreg_checks argument:
make check jtreg_checks="langtools hotspot".
If none is provided make check runs all testsuites.
+ - CACAO PR157: ARM SMP Assertion thinlock failed.
New in release 1.10 (2011-XX-XX):
diff -r 4cbe17b91cc8 -r d6246ea07860 patches/cacao/arm-memory-barrier.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/cacao/arm-memory-barrier.patch Fri Mar 11 15:34:33 2011 +0100
@@ -0,0 +1,45 @@
+Index: cacao/cacao/src/vm/jit/arm/md-atomic.hpp
+===================================================================
+--- cacao.orig/cacao/src/vm/jit/arm/md-atomic.hpp 2011-03-04 22:44:20.000000000 +0100
++++ cacao/cacao/src/vm/jit/arm/md-atomic.hpp 2011-03-04 23:02:52.000000000 +0100
+@@ -63,13 +63,21 @@
+ return Atomic::generic_compare_and_swap(p, oldval, newval);
+ }
+
++/**
++ * ARM Kernel helper for memory barrier.
++ * Using __asm __volatile ("":::"memory") does not work reliable on ARM
++ * and gcc __sync_synchronize(); implementation does not use the kernel
++ * helper for all gcc versions so it is unreliable to use as well.
++ */
++typedef void (__kernel_dmb_t) (void);
++#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0)
+
+ /**
+ * A memory barrier.
+ */
+ inline void memory_barrier(void)
+ {
+- __asm__ __volatile__ ("" : : : "memory");
++ __kernel_dmb();
+ }
+
+
+@@ -78,7 +86,7 @@
+ */
+ inline void write_memory_barrier(void)
+ {
+- __asm__ __volatile__ ("" : : : "memory");
++ __kernel_dmb();
+ }
+
+
+@@ -87,7 +95,7 @@
+ */
+ inline void instruction_barrier(void)
+ {
+- __asm__ __volatile__ ("" : : : "memory");
++ __kernel_dmb();
+ }
+
+ }
More information about the distro-pkg-dev
mailing list