[aarch64-port-dev ] Problematic frame: ~BufferBlob::InlineCacheBuffer

Edward Nevill edward.nevill at linaro.org
Fri Sep 6 06:54:27 PDT 2013


On Thu, 2013-09-05 at 20:02 -0700, Cao Hoang Thu wrote:
> I only run test SPECjvm2008, it always happen this issue
> 
> #
> # 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
> #

Dear Cao Hoang Thu,

I have managed to replicate this problem, but only when using the RTSM model which models the I cache and D cache behaviour rather than the foundation model.

The patch below should fix this problem.

Ed.

--- CUT HERE ---
exporting patch:
# HG changeset patch
# User Edward Nevill edward.nevill at linaro.org
# Date 1378474791 -3600
#      Fri Sep 06 14:39:51 2013 +0100
# Node ID 49648b3f8a17289d275a5291cb7364ca89261310
# Parent  6cb0224e9626d3767fe96bd05b55fda2a350b17e
Fix ICache flusing problem found in RTSM

diff -r 6cb0224e9626 -r 49648b3f8a17 src/cpu/aarch64/vm/icBuffer_aarch64.cpp
--- a/src/cpu/aarch64/vm/icBuffer_aarch64.cpp	Thu Sep 05 18:16:19 2013 +0100
+++ b/src/cpu/aarch64/vm/icBuffer_aarch64.cpp	Fri Sep 06 14:39:51 2013 +0100
@@ -55,6 +55,8 @@
   masm->b(ExternalAddress(entry_point));
   masm->bind(l);
   masm->emit_int64((int64_t)cached_value);
+  // Only need to invalidate the 1st two instructions - not the whole ic stub
+  ICache::invalidate_range(code_begin, NativeInstruction::instruction_size * 2);
   0;
 }
 
--- CUT HERE ---





More information about the aarch64-port-dev mailing list