RFR: Fix ExtendedDTraceProbes with Shenandoah

Roman Kennke rkennke at redhat.com
Fri Sep 21 13:38:56 UTC 2018


Am 21.09.2018 um 15:35 schrieb Zhengyu Gu:
> 
> 
> 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]
> 

Hmm. Ok then.

Roman




More information about the shenandoah-dev mailing list