RFR (S) [8u] 8155635: C2: Mixed unsafe oop accesses break alias analysis
David Buck
david.buck at oracle.com
Sat Oct 20 01:01:45 UTC 2018
Hi Vladimir!
Thanks for taking a look at this.
> And I did not find in Bug or Review
> that it is G1 specific problem.
Yeah, I'm confident that it is not G1-specific, but I failed in coming
up with an easy way to reproduce the issue without G1. Only after a
frustrated afternoon of trying to get the testcase to reproduce on JDK 8
did I stumble on Mikael's comment (2014-08-26 20:58) in JDK-8056058 [0]
that G1 seemed to help trigger the issue.
> Specifying GC in test is 'no-no'. You can have conflict when testing
> environment pass different GC flag.
I did not know about this rule. Thanks for catching this. How about,
after removing the flag from the command line, I add a comment saying
that running with G1 seems to help trigger the issue? Something like
this perhaps?
===
/*
* @test
* @bug 8155635
* @library /testlibrary
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -Xbatch
-XX:-TieredCompilation compiler.unsafe.MixedUnsafeStoreObject
* @run main/othervm -Xbatch compiler.unsafe.MixedUnsafeStoreObject
* Testcase currently only known to reproduce when run with -XX:+UseG1GC.
*/
===
BTW, this seems true for JDK 9 as well. For example, specifying
UseParallelGC or UseConcMarkSweepGC with JDK 9 makes the testcase pass.
Cheers,
-Buck
[0] https://bugs.openjdk.java.net/browse/JDK-8056058
On 2018/10/20 2:01, Vladimir Kozlov wrote:
> Specifying GC in test is 'no-no'. You can have conflict when testing
> environment pass different GC flag. And I did not find in Bug or Review
> that it is G1 specific problem.
>
> Otherwise looks good.
>
> Thanks,
> Vladimir
>
> On 10/19/18 1:15 AM, David Buck wrote:
>> Hi!
>>
>> May I please get a review of this straightforward backport:
>>
>> bug report:
>> https://bugs.openjdk.java.net/browse/JDK-8155635
>>
>> JDK 9 code review thread:
>> http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-August/024250.html
>>
>>
>> JDK 9 changeset:
>> http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/bde4bcd58309
>>
>> JDK 8 webrev (for review):
>> http://cr.openjdk.java.net/~dbuck/jdk8155635_jdk8_ver00/
>>
>> The only minor differences from the JDK 9 fix are the different assert
>> message formatting [0] and the following changes to the testcase:
>>
>> - use of com.oracle.java.testlibrary.Utils to get Unsafe
>> - addition of -XX:+UseG1GC to command line (this is default in JDK 9,
>> so explicit flag was not needed)
>>
>> Cheers,
>> -Buck
>>
>> [0] https://bugs.openjdk.java.net/browse/JDK-8080775
More information about the hotspot-compiler-dev
mailing list