[aarch64-port-dev ] Problematic frame: ~BufferBlob::native signature handlers
Cao Hoang Thu
thuhc at yahoo.com
Wed Sep 4 21:20:01 PDT 2013
Hi Andrew,
I got error sometimes (only run command: java)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGILL (0x4) at pc=0x0000007f720b3120, pid=1798, tid=547509223952
#
# JRE version: OpenJDK Runtime Environment (8.0) (build 1.8.0-internal-thcao_2013_09_05_09_35-b00)
# Java VM: OpenJDK 64-Bit Client VM (25.0-b22 mixed mode linux-aarch64 )
# Problematic frame:
# v ~BufferBlob::InlineCacheBuffer
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x0000007f74006e10): JavaThread "main" [_thread_in_Java, id=1799, stack(0x0000007f79f7d000,0x0000007f7a17d000)]
siginfo:si_signo=SIGILL: si_errno=0, si_code=1 (ILL_ILLOPC), si_addr=0x0000007f720b3120
Registers:
R0=0x0000007f620e2e68
R1=0x0000007f620e2e68
R2=0x0000000000000000
R3=0x0000007f61e4e670
R4=0x0000000000000060
R5=0x0000000074000003
R6=0x0000000000000004
R7=0x0000000000000000
R8=0x0000007f61e4e670
R9=0xffffffffffffffff
R10=0x0000007f61e4e8b0
R11=0x0000007f798fb9e7
R12=0x0000007f79799bc0
R13=0x0000007f7a17a670
R14=0x0000000000000000
R15=0x00168d26e0000000
R16=0x0000007f7a974868
R17=0x0000007f7ab7f280
R18=0x0000007f7a177ce0
R19=0x00000000000000b9
R20=0x0000007f7a17a698
R21=0x0000007f7a9d5380
R22=0x0000007f79870a30
R23=0x0000007f72088820
R24=0x0000007f7a17a738
R25=0x0000000000000000
R26=0x0000007f79870d20
R27=0x0000007f7a17b560
R28=0x0000007f74006e10
R29=0x0000007f7a17a620
R30=0x0000007f7217a208
Top of Stack: (sp=0x0000007f7a17a5f0)
0x0000007f7a17a5f0: 0000007f7a17a738 0000000000000000
0x0000007f7a17a600: 0000007f79870d20 0000007f7a17b560
0x0000007f7a17a610: 0000007f620c9e20 0000007f7a17a620
0x0000007f7a17a620: 0000007f7a17a660 0000007f7217a238
0x0000007f7a17a630: 0000007f7a17a630 0000007f798d71a5
0x0000007f7a17a640: 0000007f7a17a698 0000007f798d7840
0x0000007f7a17a650: 0000007f620c9c78 0000007f798d71c0
0x0000007f7a17a660: 0000007f7a17a6f0 0000007f72080a94
0x0000007f7a17a670: 0000007f7a17a6f0 0000007f720803c8
0x0000007f7a17a680: 0000007f7a17a670 0000007f74006e10
0x0000007f7a17a690: 0000007f620cc638 0000007f620c9c78
0x0000007f7a17a6a0: 0000000000000001 0000007f620c9910
0x0000007f7a17a6b0: 0000007f7a17a6a0 0000007f79870a30
0x0000007f7a17a6c0: 0000007f7a17a738 0000007f79870d20
0x0000007f7a17a6d0: 0000000000000000 0000007f79870aa0
0x0000007f7a17a6e0: 0000007f7a17a698 0000007f7a17a710
0x0000007f7a17a6f0: 0000007f7a17a780 0000007f720803c8
0x0000007f7a17a700: 0000007f7a17a710 0000007f74006e10
0x0000007f7a17a710: 0000000000000000 0000007f620cc638
0x0000007f7a17a720: 0000007f620c9c78 0000007f620c9ae0
0x0000007f7a17a730: 0000007f620c9910 0000007f620c9910
0x0000007f7a17a740: 0000007f7a17a740 0000007f79870893
0x0000007f7a17a750: 0000007f7a17a7b8 0000007f79870d20
0x0000007f7a17a760: 0000000000000000 0000007f798708c0
0x0000007f7a17a770: 0000007f7a17a738 0000007f7a17a760
0x0000007f7a17a780: 0000007f7a17a800 0000007f7208026c
0x0000007f7a17a790: 0000007f7a17a760 0000007f720803c8
0x0000007f7a17a7a0: 0000007f7a17a760 0000007f620c9910
0x0000007f7a17a7b0: 0000007f620b8c28 0000007f620c9910
0x0000007f7a17a7c0: 0000007f7a17a7c0 0000007f798b7b49
0x0000007f7a17a7d0: 0000007f7a17a848 0000007f798b8980
0x0000007f7a17a7e0: 0000000000000000 0000007f798b7b90
Instructions: (pc=0x0000007f720b3120)
0x0000007f720b3100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0000007f720b3110: 40 00 00 00 00 00 00 00 04 a2 17 72 7f 00 00 00
0x0000007f720b3120: 49 00 00 58 e7 1e 03 14 b0 e8 e4 61 7f 00 00 00
0x0000007f720b3130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Register to memory mapping:
R0=0x0000007f620e2e68
R1=0x0000007f620e2e68
R2=0x0000000000000000
R3=0x0000007f61e4e670
R4=0x0000000000000060
R5=0x0000000074000003
R6=0x0000000000000004
R7=0x0000000000000000
R8=0x0000007f61e4e670
R9=0xffffffffffffffff
R10=0x0000007f61e4e8b0
R11=0x0000007f798fb9e7
R12=0x0000007f79799bc0
R13=0x0000007f7a17a670
R14=0x0000000000000000
R15=0x00168d26e0000000
R16=0x0000007f7a974868
R17=0x0000007f7ab7f280
R18=0x0000007f7a177ce0
R19=0x00000000000000b9
R20=0x0000007f7a17a698
R21=0x0000007f7a9d5380
R22=0x0000007f79870a30
R23=0x0000007f72088820
R24=0x0000007f7a17a738
R25=0x0000000000000000
R26=0x0000007f79870d20
R27=0x0000007f7a17b560
R28=0x0000007f74006e10
R29=0x0000007f7a17a620
R30=0x0000007f7217a208
Stack: [0x0000007f79f7d000,0x0000007f7a17d000], sp=0x0000007f7a17a5f0, free space=2037k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
v ~BufferBlob::InlineCacheBuffer
J sun.util.ResourceBundleEnumeration.hasMoreElements()Z
j java.util.ResourceBundle.handleKeySet()Ljava/util/Set;+32
j java.util.ResourceBundle.containsKey(Ljava/lang/String;)Z+19
j sun.util.locale.provider.LocaleResources.getCurrencyName(Ljava/lang/String;)Ljava/lang/String;+89
j sun.util.locale.provider.CurrencyNameProviderImpl.getString(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;+24
j sun.util.locale.provider.CurrencyNameProviderImpl.getSymbol(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;+9
j java.util.Currency$CurrencyNameGetter.getObject(Ljava/util/spi/CurrencyNameProvider;Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+63
j java.util.Currency$CurrencyNameGetter.getObject(Ljava/util/spi/LocaleServiceProvider;Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;+9
j sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObjectImpl(Lsun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter;Ljava/util/Locale;ZLjava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;+40
j sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObject(Lsun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter;Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;+7
j java.util.Currency.getSymbol(Ljava/util/Locale;)Ljava/lang/String;+27
j java.text.DecimalFormatSymbols.initialize(Ljava/util/Locale;)V+258
j java.text.DecimalFormatSymbols.<init>(Ljava/util/Locale;)V+11
j sun.util.locale.provider.DecimalFormatSymbolsProviderImpl.getInstance(Ljava/util/Locale;)Ljava/text/DecimalFormatSymbols;+17
j java.text.DecimalFormatSymbols.getInstance(Ljava/util/Locale;)Ljava/text/DecimalFormatSymbols;+15
j sun.util.locale.provider.NumberFormatProviderImpl.getInstance(Ljava/util/Locale;I)Ljava/text/NumberFormat;+31
j sun.util.locale.provider.NumberFormatProviderImpl.getNumberInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;+3
j java.text.NumberFormat.getInstance(Lsun/util/locale/provider/LocaleProviderAdapter;Ljava/util/Locale;I)Ljava/text/NumberFormat;+46
j java.text.NumberFormat.getInstance(Ljava/util/Locale;I)Ljava/text/NumberFormat;+11
j java.text.NumberFormat.getInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;+2
j java.text.MessageFormat.subformat([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;+202
j java.text.MessageFormat.format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;+11
j java.text.Format.format(Ljava/lang/Object;)Ljava/lang/String;+17
j java.text.MessageFormat.format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+11
j sun.launcher.LauncherHelper.getLocalizedMessage(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+14
j sun.launcher.LauncherHelper.initHelpMessage(Ljava/lang/String;)V+48
v ~StubRoutines::call_stub
V [libjvm.so+0x3025e4] JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0xe04
V [libjvm.so+0x474180] os::os_exception_wrapper(void (*)(JavaValue*, methodHandle*, JavaCallArguments*, Thread*), JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x20
V [libjvm.so+0x312ce8] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*) [clone .isra.150]+0x288
V [libjvm.so+0x325ff0] jni_CallStaticVoidMethod+0x190
C [libjli.so+0x71b4] JavaMain+0x3d4
C [libpthread.so.0+0x7d0c] start_thread+0xac
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x0000007f74094b40 JavaThread "Service Thread" daemon [_thread_blocked, id=1805, stack(0x0000007f786e0000,0x0000007f788e0000)]
0x0000007f74091e90 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=1804, stack(0x0000007f788e0000,0x0000007f78ae0000)]
0x0000007f7408f960 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1803, stack(0x0000007f78ae0000,0x0000007f78ce0000)]
0x0000007f74069340 JavaThread "Finalizer" daemon [_thread_blocked, id=1802, stack(0x0000007f78ce0000,0x0000007f78ee0000)]
0x0000007f74066eb0 JavaThread "Reference Handler" daemon [_thread_blocked, id=1801, stack(0x0000007f78ee0000,0x0000007f790e0000)]
=>0x0000007f74006e10 JavaThread "main" [_thread_in_Java, id=1799, stack(0x0000007f79f7d000,0x0000007f7a17d000)]
Other Threads:
0x0000007f74061ac0 VMThread [stack: 0x0000007f790e0000,0x0000007f792e0000] [id=1800]
0x0000007f7401b180 WatcherThread [stack: 0x0000007f784e0000,0x0000007f786e0000] [id=1806]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 4928K, used 931K [0x0000007f62000000, 0x0000007f62550000, 0x0000007f67550000)
eden space 4416K, 21% used [0x0000007f62000000, 0x0000007f620e8ee0, 0x0000007f62450000)
from space 512K, 0% used [0x0000007f62450000, 0x0000007f62450000, 0x0000007f624d0000)
to space 512K, 0% used [0x0000007f624d0000, 0x0000007f624d0000, 0x0000007f62550000)
tenured generation total 10944K, used 0K [0x0000007f67550000, 0x0000007f68000000, 0x0000007f72000000)
the space 10944K, 0% used [0x0000007f67550000, 0x0000007f67550000, 0x0000007f67550200, 0x0000007f68000000)
Metaspace total 4480K, used 2642K, reserved 10240K
data space 4096K, used 2327K, reserved 8192K
class space 384K, used 314K, reserved 2048K
Card table byte_map: [0x0000007f795b6000,0x0000007f79637000] byte_map_base: 0x0000007f39aa6000
Polling page: 0x0000007f7abc6000
CodeCache: size=32768Kb used=1517Kb max_used=1517Kb free=31250Kb max_free_chunk=31250Kb
bounds [0x0000007f72000000, 0x0000007f72180000, 0x0000007f74000000]
total_blobs=232 nmethods=43 adapters=132
compilation: enabled
Compilation events (10 events):
Event: 0.288 Thread 0x0000007f74091e90 nmethod 37 0x0000007f72179610 code [0x0000007f72179770, 0x0000007f72179970]
Event: 0.290 Thread 0x0000007f74091e90 38 java.util.HashMap::getEntry (77 bytes)
Event: 0.290 Thread 0x0000007f74091e90 nmethod 38 0x0000007f72179ad0 code [0x0000007f72179c60, 0x0000007f72179e50]
Event: 0.290 Thread 0x0000007f74091e90 39 sun.util.ResourceBundleEnumeration::hasMoreElements (117 bytes)
Event: 0.291 Thread 0x0000007f74091e90 nmethod 39 0x0000007f72179f90 code [0x0000007f7217a1c0, 0x0000007f7217a428]
Event: 0.291 Thread 0x0000007f74091e90 40 java.util.HashMap$HashIterator::nextEntry (99 bytes)
Event: 0.292 Thread 0x0000007f74091e90 nmethod 40 0x0000007f7217a590 code [0x0000007f7217a730, 0x0000007f7217a970]
Event: 0.292 Thread 0x0000007f74091e90 41 java.util.HashMap$HashIterator::hasNext (13 bytes)
Event: 0.292 Thread 0x0000007f74091e90 nmethod 41 0x0000007f7217ab90 code [0x0000007f7217acc0, 0x0000007f7217adb0]
Event: 0.292 Thread 0x0000007f74091e90 42 sun.util.ResourceBundleEnumeration::nextElement (5 bytes)
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Internal exceptions (10 events):
Event: 0.142 Thread 0x0000007f74006e10 Threw 0x0000007f62071100 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.142 Thread 0x0000007f74006e10 Threw 0x0000007f62071380 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.142 Thread 0x0000007f74006e10 Threw 0x0000007f62071ee8 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.142 Thread 0x0000007f74006e10 Threw 0x0000007f62072168 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.158 Thread 0x0000007f74006e10 Threw 0x0000007f620787b8 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.159 Thread 0x0000007f74006e10 Threw 0x0000007f62079ad0 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.160 Thread 0x0000007f74006e10 Threw 0x0000007f620914c8 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.160 Thread 0x0000007f74006e10 Threw 0x0000007f62092268 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.283 Thread 0x0000007f74006e10 Threw 0x0000007f620c67d0 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Event: 0.283 Thread 0x0000007f74006e10 Threw 0x0000007f620c79f8 at /AMCC/thcao/ws/processor/amcc_integration/rootfs/buildroot/output/build/openjdk8-aarch64/hotspot/src/share/vm/prims/jvm.cpp:1159
Events (10 events):
Event: 0.277 loading class 0x0000007f79536270
Event: 0.278 loading class 0x0000007f79536270 done
Event: 0.278 loading class 0x0000007f740c4d70
Event: 0.278 loading class 0x0000007f740c4d70 done
Event: 0.283 loading class 0x0000007f740e6c00
Event: 0.283 loading class 0x0000007f740e6c00 done
Event: 0.284 loading class 0x0000007f50015bc0
Event: 0.285 loading class 0x0000007f50015bc0 done
Event: 0.288 loading class 0x0000007f795120f0
Event: 0.289 loading class 0x0000007f795120f0 done
Dynamic libraries:
00400000-00401000 r-xp 00000000 08:01 39981180 /usr/lib/jvm/openjdk8/jre/bin/java
00410000-00411000 rwxp 00000000 08:01 39981180 /usr/lib/jvm/openjdk8/jre/bin/java
17f9f000-17fc0000 rwxp 00000000 00:00 0 [heap]
7f44000000-7f44021000 rwxp 00000000 00:00 0
7f44021000-7f48000000 ---p 00000000 00:00 0
7f48000000-7f48021000 rwxp 00000000 00:00 0
7f48021000-7f4c000000 ---p 00000000 00:00 0
7f4c000000-7f4c021000 rwxp 00000000 00:00 0
7f4c021000-7f50000000 ---p 00000000 00:00 0
7f50000000-7f50081000 rwxp 00000000 00:00 0
7f50081000-7f54000000 ---p 00000000 00:00 0
7f54000000-7f54021000 rwxp 00000000 00:00 0
7f54021000-7f58000000 ---p 00000000 00:00 0
7f58000000-7f58021000 rwxp 00000000 00:00 0
7f58021000-7f5c000000 ---p 00000000 00:00 0
7f5c000000-7f5c021000 rwxp 00000000 00:00 0
7f5c021000-7f60000000 ---p 00000000 00:00 0
7f61e00000-7f61e60000 rwxp 00000000 00:00 0
7f61e60000-7f62000000 rwxp 00000000 00:00 0
7f62000000-7f62550000 rwxp 00000000 00:00 0
7f62550000-7f67550000 rwxp 00000000 00:00 0
7f67550000-7f68000000 rwxp 00000000 00:00 0
7f68000000-7f72000000 rwxp 00000000 00:00 0
7f72000000-7f72180000 rwxp 00000000 00:00 0
7f72180000-7f74103000 rwxp 00000000 00:00 0
7f74103000-7f78000000 ---p 00000000 00:00 0
7f7830c000-7f784bb000 rwxp 00000000 00:00 0
7f784bb000-7f784c5000 r-xs 00107000 08:01 39981228 /usr/lib/jvm/openjdk8/jre/lib/ext/localedata.jar
7f784c5000-7f784e0000 r-xs 00344000 08:01 39981233 /usr/lib/jvm/openjdk8/jre/lib/ext/cldrdata.jar
7f784e0000-7f784e1000 ---p 00000000 00:00 0
7f784e1000-7f786e0000 rwxp 00000000 00:00 0 [stack:1806]
7f786e0000-7f786e3000 ---p 00000000 00:00 0
7f786e3000-7f788e0000 rwxp 00000000 00:00 0 [stack:1805]
7f788e0000-7f788e3000 ---p 00000000 00:00 0
7f788e3000-7f78ae0000 rwxp 00000000 00:00 0 [stack:1804]
7f78ae0000-7f78ae3000 ---p 00000000 00:00 0
7f78ae3000-7f78ce0000 rwxp 00000000 00:00 0 [stack:1803]
7f78ce0000-7f78ce3000 ---p 00000000 00:00 0
7f78ce3000-7f78ee0000 rwxp 00000000 00:00 0 [stack:1802]
7f78ee0000-7f78ee3000 ---p 00000000 00:00 0
7f78ee3000-7f790e0000 rwxp 00000000 00:00 0 [stack:1801]
7f790e0000-7f790e1000 ---p 00000000 00:00 0
7f790e1000-7f79329000 rwxp 00000000 00:00 0 [stack:1800]
7f79329000-7f794dd000 r-xs 038be000 08:01 39981331 /usr/lib/jvm/openjdk8/jre/lib/rt.jar
7f794dd000-7f79566000 rwxp 00000000 00:00 0
7f79566000-7f795b6000 rwxp 00000000 00:00 0
7f795b6000-7f795b9000 rwxp 00000000 00:00 0
7f795b9000-7f795e0000 rwxp 00000000 00:00 0
7f795e0000-7f795e6000 rwxp 00000000 00:00 0
7f795e6000-7f79636000 rwxp 00000000 00:00 0
7f79636000-7f7963d000 rwxp 00000000 00:00 0
7f7963d000-7f796b7000 rwxp 00000000 00:00 0
7f796b7000-7f79ab7000 rwxp 00000000 00:00 0
7f79ab7000-7f79eb7000 rwxp 00000000 00:00 0
7f79eb7000-7f79ed0000 r-xp 00000000 08:01 39981281 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libzip.so
7f79ed0000-7f79ee0000 ---p 00019000 08:01 39981281 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libzip.so
7f79ee0000-7f79ee1000 rwxp 00019000 08:01 39981281 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libzip.so
7f79ee1000-7f79ee9000 rwxs 00000000 00:0d 1660 /tmp/hsperfdata_root/1798
7f79ee9000-7f79ef4000 r-xp 00000000 08:01 4194348 /lib/libnss_files-2.17.so
7f79ef4000-7f79f03000 ---p 0000b000 08:01 4194348 /lib/libnss_files-2.17.so
7f79f03000-7f79f04000 r-xp 0000a000 08:01 4194348 /lib/libnss_files-2.17.so
7f79f04000-7f79f05000 rwxp 0000b000 08:01 4194348 /lib/libnss_files-2.17.so
7f79f0a000-7f79f36000 r-xp 00000000 08:01 39981264 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libjava.so
7f79f36000-7f79f46000 ---p 0002c000 08:01 39981264 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libjava.so
7f79f46000-7f79f48000 rwxp 0002c000 08:01 39981264 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libjava.so
7f79f48000-7f79f54000 r-xp 00000000 08:01 39981273 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libverify.so
7f79f54000-7f79f63000 ---p 0000c000 08:01 39981273 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libverify.so
7f79f63000-7f79f65000 rwxp 0000b000 08:01 39981273 /usr/lib/jvm/openjdk8/jre/lib/aarch64/libverify.so
7f79f65000-7f79f6b000 r-xp 00000000 08:01 4194354 /lib/librt-2.17.so
7f79f6b000-7f79f7b000 ---p 00006000 08:01 4194354 /lib/librt-2.17.so
7f79f7b000-7f79f7c000 r-xp 00006000 08:01 4194354 /lib/librt-2.17.so
7f79f7c000-7f79f7d000 rwxp 00007000 08:01 4194354 /lib/librt-2.17.so
7f79f7d000-7f79f80000 ---p 00000000 00:00 0
7f79f80000-7f7a17d000 rwxp 00000000 00:00 0 [stack:1799]
7f7a17d000-7f7a190000 r-xp 00000000 08:01 4194349 /lib/libgcc_s.so.1
7f7a190000-7f7a19f000 ---p 00013000 08:01 4194349 /lib/libgcc_s.so.1
7f7a19f000-7f7a1a0000 rwxp 00012000 08:01 4194349 /lib/libgcc_s.so.1
7f7a1a0000-7f7a230000 r-xp 00000000 08:01 4194309 /lib/libm-2.17.so
7f7a230000-7f7a23f000 ---p 00090000 08:01 4194309 /lib/libm-2.17.so
7f7a23f000-7f7a240000 r-xp 0008f000 08:01 4194309 /lib/libm-2.17.so
7f7a240000-7f7a241000 rwxp 00090000 08:01 4194309 /lib/libm-2.17.so
7f7a241000-7f7a33d000 r-xp 00000000 08:01 39980059 /usr/lib/libstdc++.so.6.0.18
7f7a33d000-7f7a34c000 ---p 000fc000 08:01 39980059 /usr/lib/libstdc++.so.6.0.18
7f7a34c000-7f7a353000 r-xp 000fb000 08:01 39980059 /usr/lib/libstdc++.so.6.0.18
7f7a353000-7f7a355000 rwxp 00102000 08:01 39980059 /usr/lib/libstdc++.so.6.0.18
7f7a355000-7f7a36a000 rwxp 00000000 00:00 0
7f7a36a000-7f7a93f000 r-xp 00000000 08:01 39981262 /usr/lib/jvm/openjdk8/jre/lib/aarch64/client/libjvm.so
7f7a93f000-7f7a94f000 ---p 005d5000 08:01 39981262 /usr/lib/jvm/openjdk8/jre/lib/aarch64/client/libjvm.so
7f7a94f000-7f7a98d000 rwxp 005d5000 08:01 39981262 /usr/lib/jvm/openjdk8/jre/lib/aarch64/client/libjvm.so
7f7a98d000-7f7a9e3000 rwxp 00000000 00:00 0
7f7a9e3000-7f7ab1d000 r-xp 00000000 08:01 4194341 /lib/libc-2.17.so
7f7ab1d000-7f7ab2d000 ---p 0013a000 08:01 4194341 /lib/libc-2.17.so
7f7ab2d000-7f7ab31000 r-xp 0013a000 08:01 4194341 /lib/libc-2.17.so
7f7ab31000-7f7ab33000 rwxp 0013e000 08:01 4194341 /lib/libc-2.17.so
7f7ab33000-7f7ab37000 rwxp 00000000 00:00 0
7f7ab37000-7f7ab39000 r-xp 00000000 08:01 4194312 /lib/libdl-2.17.so
7f7ab39000-7f7ab49000 ---p 00002000 08:01 4194312 /lib/libdl-2.17.so
7f7ab49000-7f7ab4a000 r-xp 00002000 08:01 4194312 /lib/libdl-2.17.so
7f7ab4a000-7f7ab4b000 rwxp 00003000 08:01 4194312 /lib/libdl-2.17.so
7f7ab4b000-7f7ab61000 r-xp 00000000 08:01 39981290 /usr/lib/jvm/openjdk8/jre/lib/aarch64/jli/libjli.so
7f7ab61000-7f7ab71000 ---p 00016000 08:01 39981290 /usr/lib/jvm/openjdk8/jre/lib/aarch64/jli/libjli.so
7f7ab71000-7f7ab72000 rwxp 00016000 08:01 39981290 /usr/lib/jvm/openjdk8/jre/lib/aarch64/jli/libjli.so
7f7ab72000-7f7ab89000 r-xp 00000000 08:01 4194327 /lib/libpthread-2.17.so
7f7ab89000-7f7ab98000 ---p 00017000 08:01 4194327 /lib/libpthread-2.17.so
7f7ab98000-7f7ab99000 r-xp 00016000 08:01 4194327 /lib/libpthread-2.17.so
7f7ab99000-7f7ab9a000 rwxp 00017000 08:01 4194327 /lib/libpthread-2.17.so
7f7ab9a000-7f7ab9e000 rwxp 00000000 00:00 0
7f7ab9e000-7f7abbb000 r-xp 00000000 08:01 4194310 /lib/ld-2.17.so
7f7abbf000-7f7abc2000 rwxp 00000000 00:00 0
7f7abc6000-7f7abc7000 r-xp 00000000 00:00 0
7f7abc7000-7f7abc8000 rwxp 00000000 00:00 0
7f7abc8000-7f7abca000 r-xp 00000000 00:00 0 [vdso]
7f7abca000-7f7abcb000 r-xp 0001c000 08:01 4194310 /lib/ld-2.17.so
7f7abcb000-7f7abcd000 rwxp 0001d000 08:01 4194310 /lib/ld-2.17.so
7fca8ee000-7fca90f000 rwxp 00000000 00:00 0 [stack]
VM Arguments:
java_command: <unknown>
java_class_path (initial): .
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin
SHELL=/bin/bash
Signal Handlers:
SIGSEGV: [libjvm.so+0x571b00], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x571b00], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x46da60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: [libjvm.so+0x46da60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGXFSZ: [libjvm.so+0x46da60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x46da60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x46d940], sa_mask[0]=0x00000000, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x46dac0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x46dac0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x46dac0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x46dac0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
________________________________
From: Andrew Haley <aph at redhat.com>
To: Cao Hoang Thu <thuhc at yahoo.com>
Cc: "aarch64-port-dev at openjdk.java.net" <aarch64-port-dev at openjdk.java.net>
Sent: Wednesday, September 4, 2013 4:59 PM
Subject: Re: [aarch64-port-dev ] Problematic frame: ~BufferBlob::native signature handlers
On 09/04/2013 06:39 AM, Cao Hoang Thu wrote:
> I got error when run any java command: (example: java -version or java)
>
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # SIGILL (0x4) at pc=0x0000007f920c281c, pid=1910, tid=548033499664
> #
> # JRE version: (8.0) (build )
> # Java VM: OpenJDK 64-Bit Client VM (25.0-b22 mixed mode linux-aarch64 )
> # Problematic frame:
> # v ~BufferBlob::native signature handlers
> #
> # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
> #
> # If you would like to submit a bug report, please visit:
> # http://bugreport.sun.com/bugreport/crash.jsp
> #
Yes, we know about this one. It's a cache flush bug that affects some
environments. Try this patch.
Andrew.
# HG changeset patch
# User aph
# Date 1378288603 -3600
# Node ID d3018f52f95024ab552222f1086fa2b94a502d6f
# Parent 39453e27d28bb97d40e138103e49c33d3758177f
Implement ICacheStubGenerator::generate_icache_flush
diff -r 39453e27d28b -r d3018f52f950 src/cpu/aarch64/vm/assembler_aarch64.hpp
--- a/src/cpu/aarch64/vm/assembler_aarch64.hpp Wed Sep 04 10:55:35 2013 +0100
+++ b/src/cpu/aarch64/vm/assembler_aarch64.hpp Wed Sep 04 10:56:43 2013 +0100
@@ -978,6 +978,14 @@
system(0b00, 0b011, 0b00011, SY, 0b110);
}
+ void dc(Register Rt) {
+ system(0b01, 0b011, 0b0111, 0b1011, 0b001, Rt);
+ }
+
+ void ic(Register Rt) {
+ system(0b01, 0b011, 0b0111, 0b0101, 0b001, Rt);
+ }
+
// Unconditional branch (register)
void branch_reg(Register R, int opc) {
starti;
diff -r 39453e27d28b -r d3018f52f950 src/cpu/aarch64/vm/icache_aarch64.cpp
--- a/src/cpu/aarch64/vm/icache_aarch64.cpp Wed Sep 04 10:55:35 2013 +0100
+++ b/src/cpu/aarch64/vm/icache_aarch64.cpp Wed Sep 04 10:56:43 2013 +0100
@@ -33,21 +33,13 @@
#define __ _masm->
-int _flush_icache_stub_dummy(address addr, int lines, int magic)
-{
- // no need to do any cache flushing on x86 so just obey the implicit
- // contract to return the magic arg
-
- return magic;
-}
-
void ICacheStubGenerator::generate_icache_flush(ICache::flush_icache_stub_t* flush_icache_stub) {
aarch64TestHook();
StubCodeMark mark(this, "ICache", "flush_icache_stub");
- address start = __ pc();
+ address entry = __ pc();
// generate a c stub prolog which will bootstrap into the ARM code
// which follows, loading the 3 general registers passed by the
@@ -57,24 +49,21 @@
__ c_stub_prolog(3, 0, MacroAssembler::ret_type_integral);
#endif
- address entry = __ pc();
+ Register start = r0, lines = r1, auto_magic = r2;
- // hmm, think we probably need an instruction synchronizaton barrier
- // and a memory and data synchronization barrier but we will find
- // out when we get real hardware :-)
+ // First flush the dcache
+ __ generate_flush_loop(&Assembler::dc, start, lines);
- // n.b. SY means a system wide barrier which is the overkill option
+ __ dsb(Assembler::SY);
- address loop = __ pc();
- __ dsb(Assembler::SY);
- __ isb();
- // args 1 and 2 identify the start address and size of the flush
- // region but we cannot use them on ARM. the stub is supposed to
- // return the 3rd argument
- __ mov(r0, r2);
+ // And then the icache
+ __ generate_flush_loop(&Assembler::ic, start, lines);
+
+ // the stub is supposed to return the 3rd argument
+ __ mov(r0, auto_magic);
__ ret(r30);
- *flush_icache_stub = (ICache::flush_icache_stub_t)start;
+ *flush_icache_stub = (ICache::flush_icache_stub_t)entry;
}
#undef __
diff -r 39453e27d28b -r d3018f52f950 src/cpu/aarch64/vm/icache_aarch64.hpp
--- a/src/cpu/aarch64/vm/icache_aarch64.hpp Wed Sep 04 10:55:35 2013 +0100
+++ b/src/cpu/aarch64/vm/icache_aarch64.hpp Wed Sep 04 10:56:43 2013 +0100
@@ -30,16 +30,6 @@
// Interface for updating the instruction cache. Whenever the VM modifies
// code, part of the processor instruction cache potentially has to be flushed.
-// On the x86, this is a no-op -- the I-cache is guaranteed to be consistent
-// after the next jump, and the VM never modifies instructions directly ahead
-// of the instruction fetch path.
-
-// [phh] It's not clear that the above comment is correct, because on an MP
-// system where the dcaches are not snooped, only the thread doing the invalidate
-// will see the update. Even in the snooped case, a memory fence would be
-// necessary if stores weren't ordered. Fortunately, they are on all known
-// x86 implementations.
-
class ICache : public AbstractICache {
public:
enum {
diff -r 39453e27d28b -r d3018f52f950 src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Wed Sep 04 10:55:35 2013 +0100
+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Wed Sep 04 10:56:43 2013 +0100
@@ -2588,3 +2588,19 @@
}
}
+void MacroAssembler::generate_flush_loop(flush_insn flush, Register start, Register lines) {
+ Label again, exit;
+
+ assert_different_registers(start, lines, rscratch1, rscratch2);
+
+ cmp(lines, zr);
+ br(Assembler::LE, exit);
+ mov(rscratch1, start);
+ mov(rscratch2, lines);
+ bind(again);
+ (this->*flush)(rscratch1);
+ sub(rscratch2, rscratch2, 1);
+ add(rscratch1, rscratch1, ICache::line_size);
+ cbnz(rscratch2, again);
+ bind(exit);
+}
diff -r 39453e27d28b -r d3018f52f950 src/cpu/aarch64/vm/macroAssembler_aarch64.hpp
--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp Wed Sep 04 10:55:35 2013 +0100
+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.hpp Wed Sep 04 10:56:43 2013 +0100
@@ -1365,6 +1365,9 @@
}
address read_polling_page(Register r, address page, relocInfo::relocType rtype);
+
+ typedef void (Assembler::* flush_insn)(Register Rt);
+ void generate_flush_loop(flush_insn flush, Register start, Register lines);
};
#ifdef ASSERT
diff -r 39453e27d28b -r d3018f52f950 src/share/vm/runtime/icache.cpp
--- a/src/share/vm/runtime/icache.cpp Wed Sep 04 10:55:35 2013 +0100
+++ b/src/share/vm/runtime/icache.cpp Wed Sep 04 10:56:43 2013 +0100
@@ -55,8 +55,8 @@
static int magic = 0xbaadbabe;
int auto_magic = magic; // Make a local copy to avoid race condition
- // int r = (*_flush_icache_stub)(start, lines, auto_magic);
- // guarantee(r == auto_magic, "flush stub routine did not execute");
+ int r = (*_flush_icache_stub)(start, lines, auto_magic);
+ guarantee(r == auto_magic, "flush stub routine did not execute");
++magic;
}
More information about the aarch64-port-dev
mailing list