RFR: JDK-8202951: Implementation of JEPJDK-8204247: Include default CDS (Class Data Sharing) archive in JDK binary

Jiangli Zhou jiangli.zhou at oracle.com
Fri Oct 5 16:57:05 UTC 2018


Dear all,

JEP 341, Default CDS Archive has been targeted to JDK 12 (please see 
Mark's email from yesterday, Re: JEP proposed to target JDK 12: 341: 
Default CDS Archives). Code review, testing and performance runs are 
completed for the default CDS archive changes. I've started the final 
pre-integration test yesterday with all tier1 - tier8. So far most of 
the tiers have been completed. Just a heads up, I'm planning to 
integrate the change in the next few hour.

Thanks everyone for contributing to this effort!!!

Jiangli



On 9/6/18 12:45 PM, Jiangli Zhou wrote:
> Hi,
>
> The JEP (http://openjdk.java.net/jeps/341) for the default CDS 
> archives is now a candidate. Please see Mark's email, 'New candidate 
> JEP: 341: Default CDS Archives'. Please help test Erik's makefile 
> patch for your platform if it is not built/tested in openjdk mainline 
> to prevent any possible breakage on your side. Any comments/feedbacks 
> on the default CDS archive are highly appreciated!
>
>   http://cr.openjdk.java.net/~jiangli/8202951/webrev.02/
>
> The above webrev is sync'ed with the lasted jdk/jdk repository today.
>
> Thanks!
>
> Jiangli
>
> On 8/30/18 11:26 AM, Jiangli Zhou wrote:
>> Hi Magnus,
>>
>> Sounds good. Will update the message.
>>
>> Thanks!
>>
>> Jiangli
>>
>>
>> On 8/30/18 3:56 AM, Magnus Ihse Bursie wrote:
>>> On 2018-08-29 17:45, Erik Joelsson wrote:
>>>>
>>>> Hello Magnus,
>>>>
>>>> As the author of the build changes I will answer this.
>>>>
>>>> On 2018-08-29 04:53, Magnus Ihse Bursie wrote:
>>>>> On 2018-08-28 18:25, Erik Joelsson wrote:
>>>>>> Build changes look good to me (but should probably get review 
>>>>>> from someone else).
>>>>>
>>>>> I'm (as usually) not as happy as Erik. ;-)
>>>>>
>>>>> In Images.gmk, you have added this rule:
>>>>>           $@ -Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
>>>>>
>>>>> It took me a while to grasp. You are relying on 
>>>>> $(JIMAGE_TARGET_FILE) to evaluate to bin/java. But that is only 
>>>>> incidentally so. This file is just picked arbitrarily to represent 
>>>>> when the entire image is done, for make. Please use 
>>>>> $(JRE_IMAGE_DIR)/bin/java instead.
>>>>>
>>>> I can agree with this part. That was a bit of a hack done in a hurry.
>>>>> The logic in jdk-options.m4 is broken. If indeed it is not 
>>>>> possible to use cds archive with zero, then things will break 
>>>>> since it will still be built if using --enable-cds-archive!
>>>>>
>>>>> What you should do is to set default to true unless using cross 
>>>>> compilation or zero. If the user explicitly sets 
>>>>> --enable-cds-archive, and it's not possible, a fatal error should 
>>>>> be generated.
>>>>>
>>>> Here I'm not as sure. I deliberately let it be possible to override 
>>>> the default behavior for zero as someone might want to fix that at 
>>>> some point, you never know. For cross compilation it's just not 
>>>> possible ever so that's different. Maybe my reasoning is invalid.
>>>
>>> I see. I still think it would have made more sense, in that case, to 
>>> set the default to false if using zero, but allow override. But I'm 
>>> not going to insist on that.
>>>
>>> However, if the problem with zero is not that it's technically 
>>> impossible, just that it's not tested, I think the message should be 
>>> changed from "[no, not possible with JVM variant zero]" to just 
>>> "[no]" with a comment in the configure script that it's off by 
>>> default since it's not tested.
>>>
>>> Apart from that, Jiangli's latest webrev looks good.
>>>
>>> Jiangli: If you fix it like I suggested, you do not need to respin 
>>> the webrev.
>>>
>>> /Magnus
>>>
>>>>
>>>> /Erik
>>>>> Apart from this, I'm more on Erik's line. :-)
>>>>>
>>>>> /Magnus
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> /Erik
>>>>>>
>>>>>>
>>>>>> On 2018-08-27 13:33, Jiangli Zhou wrote:
>>>>>>> Please review the implementation for JEP JDK-8204247 
>>>>>>> (https://bugs.openjdk.java.net/browse/JDK-8204247). The goal of 
>>>>>>> the JEP is to include a default CDS archive in JDK 12 binary 
>>>>>>> distribution (downloadable from http://jdk.java.net/12/). The 
>>>>>>> default CDS archive is generated using the default classlist 
>>>>>>> (resides in the lib/ directory) at JDK build time. Any 
>>>>>>> comments/suggestions are highly appreciated.
>>>>>>>
>>>>>>> All makefile changes in the webrev are contributed by Erik 
>>>>>>> Joelsson (many thanks!!).
>>>>>>>
>>>>>>> This is a combination of efforts from different teams and 
>>>>>>> individuals. Thanks to everyone who has been involved in the JEP 
>>>>>>> & implementation discussions, testing and bug fixing!
>>>>>>>
>>>>>>>   JEP: https://bugs.openjdk.java.net/browse/JDK-8204247
>>>>>>>   RFE: https://bugs.openjdk.java.net/browse/JDK-8202951
>>>>>>>   webrev: http://cr.openjdk.java.net/~jiangli/8202951/webrev.00/
>>>>>>>
>>>>>>> Two sanity test cases for the default CDS archive are included 
>>>>>>> test/hotspot/jtreg/runtime/SharedArchiveFile. They are not 
>>>>>>> intended for in-depth CDS functional testing, which is already 
>>>>>>> covered by the existing cds/appcds tests and all tiered tests 
>>>>>>> executing with the default CDS archive enabled.
>>>>>>>
>>>>>>> As part of the webrev, 
>>>>>>> test/jdk/javax/imageio/plugins/png/ItxtUtf8Test.java is also 
>>>>>>> fixed to use larger java heap (JDK-8209739
>>>>>>> , https://bugs.openjdk.java.net/browse/JDK-8209739).
>>>>>>>
>>>>>>> Tests executed:
>>>>>>>  - several rounds of tier1 - tier8 via mach5
>>>>>>>  - JCK lang, api and vm tests via mach5
>>>>>>>
>>>>>>>
>>>>>>> Thanks!
>>>>>>> Calvin, Ioi, Jiangli
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>



More information about the jdk-dev mailing list