Conditional compilation of ZGC
Per Liden
per.liden at oracle.com
Tue May 15 09:11:30 UTC 2018
Sounds good, push it!
/Per
On 05/15/2018 11:07 AM, Stefan Karlsson wrote:
> Hi again,
>
> To mimic the unconditional usages of names and causes by the other GCs,
> I removed the changes to gcCause and gcName, and left the collectedHeap
> enum. I ran this through tier1,tier2, and hs-tier3 testing.
>
> Thanks,
> StefanK
>
> On 2018-05-09 18:58, Stefan Karlsson wrote:
>> Hi Stuart,
>>
>> On 2018-05-09 18:16, Stuart Monteith wrote:
>>> Hi,
>>> I'm not a reviewer. I only have a couple of observations to make,
>>> it otherwise looks OK, AFAICT.
>>
>> Thanks for taking a look at this!
>>
>> Hopefully it's straight forward to enable compilation of ZGC on
>> AArch64 by adding a line to the section that sets up JVM_FEATURES_zgc.
>>
>>>
>>> src/hotspot/cpu/x86/x86_64.ad:
>>> Did you intend on changing all of the occurrences of "
>>> predicate(UseAVX == 3); " into "predicate((UseAVX == 3));" in this
>>> patch?
>>
>> IIRC, this was necessary to get the code to compile on OSX. I probably
>> should have extracted it as a separate patch.
>>
>>>
>>> src/hotspot/share/gc/shared/collectedHeap.hpp:
>>> You excluded "Z" from the enum here;
>>> src/hotspot/share/gc/shared/gcName.hpp, should you do the same for
>>> line 201 in src/hotspot/share/gc/shared/collectedHeap.hpp ?
>>
>> There is a hard-coded dependency between the C++ enum values in
>> CollectedHeap and the Java enum values in
>> http://hg.openjdk.java.net/zgc/zgc/file/0a2feb9e2974/test/lib/sun/hotspot/gc/GC.java,
>> so I've left Z in CollectedHeap, at least for now.
>>
>> Regarding the gcName.hpp. I think I might have to change that to
>> always include Z. There might be some interaction with JFR that
>> requires all values to be present. It's at least a bit odd that the
>> other GC names are not guarded by their respective INCLUDE_<GC>
>> defines. I'll take a look at this when I get back to the office next
>> week.
>>
>> Cheers,
>> StefanK
>>
>>> BR,
>>> Stuart
>>>
>>>
>>>
>>> On 9 May 2018 at 14:15, Stefan Karlsson <stefan.karlsson at oracle.com>
>>> wrote:
>>>> Hi all,
>>>>
>>>> This is the first version of the patch to allow the compilation of
>>>> ZGC to be
>>>> turned on and off. This patch passes tier1, tier2, and hs-tier3
>>>> (except for
>>>> the test in gcbarriers that need to be updated). This mostly shows
>>>> that we
>>>> can build ZGC on Linux x86_64 and Solaris Sparc, and that the other
>>>> platforms still build without ZGC. It also shows that we don't break
>>>> the
>>>> other GCs.
>>>>
>>>> http://cr.openjdk.java.net/~stefank/zgc/zIncludeZGC/webrev.01/
>>>>
>>>> There are a few changes that we want to do for next version:
>>>>
>>>> 1) .ad file replace the fatal("ZGC specific code") with
>>>> ShouldNotReachHere(), and maybe assert that we are running with ZGC.
>>>>
>>>> 2) Remove the INCLUDE_ZGC from gcCause and gcName, or add INCLUDE_<GC>
>>>> guards for the other GCs.
>>>>
>>>> 3) c2_globals.hpp further cleanup. Probably move these flags into a
>>>> gc/z/c2
>>>> directory.
>>>>
>>>> Cheers,
>>>> StefanK
>>
>>
More information about the zgc-dev
mailing list