RFR: Fix ExtendedDTraceProbes with Shenandoah

Zhengyu Gu zgu at redhat.com
Fri Sep 21 13:35:11 UTC 2018



On 09/21/2018 09:21 AM, Roland Westrelin wrote:
> 
>> The interesting question is: is this reproducible with upstream+G1
>> somehow? Can you make a testcase against G1, and fix it upstream?
> 
> It's usually quite hard to write a simple test case for a very specific
> reg alloc problem. I will submit it upstream anyway.
> 
>> Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code?
> 
> It's quite possible. Hidden ctrl flow constructs are quite error prone
> and fragile.
> 
It looks like just a register away to get G1 to stumble, no idea how to 
construct a testcase.

  120 rtcall SharedRuntime::dtrace_method_entry
      move [stack:16|L] [rbx|L]    *<= G1 has base in rbx instead of rsi*
      move [dbl_stack:18|J] [rdirdi|J]
  122 move [Base:[rbx|L] Index:[rdirdi|J] Disp: 0|L] [rax|L]
  124 membar_acquire
  126 move [lng:16|J] [rsirsi|J]
  128 cmp [NE] [rdirdi|J] [rsirsi|J]
  130 branch [NE] [label:0x00007fd7a404be68]
  132 cmp [EQ] [rbx|L] [obj:0x0000000000000000|L]
  134 branch [EQ] [label:0x00007fd7a404be68]
  136 move [Base:[rbx|L] Disp: 8|^@] [rsi|M]
  138 move [Base:[rsi|M] Disp: 395|B] [rsi|I]

-Zhengyu


> Roland.
> 


More information about the shenandoah-dev mailing list