> On Apr 25, 2018, at 10:09 PM, David Holmes <david.hol...@oracle.com> wrote:
> 
> On 26/04/2018 2:34 PM, Jiangli Zhou wrote:
>> Here is the incremental webrev with updates that incorporate all feedbacks:
>> http://cr.openjdk.java.net/~jiangli/8193213_8182731/webrev_inc.02/
> 
> Looks good.

Thanks!

> 
> One additional comment on 
> test/hotspot/jtreg/runtime/appcds/SharedArchiveFile.java - it seems 
> insufficient to just check the output for the word "dump". I would expect to 
> see something more definitively associated with -Xshare:dump and also a check 
> that it exited cleanly (in case we find "core dump”).

With other test cases being removed from appcds/SharedArchiveFile.java, I just 
realized that the test now essentially is the same as the 
jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java test. 
SharedArchiveFile/SharedArchiveFile.java includes more robust checks as you 
suggested and also tests runtime. Your comments above (and fresh morning 
coffee) reminded me that. :-) So I went ahead removed the 
appcds/SharedArchiveFile.java. Please let me know if you want to see the new 
webrev.

Thanks!
Jiangli

> 
> Thanks,
> David
> -----
> 
>> - Filed JDK-8202282 (https://bugs.openjdk.java.net/browse/JDK-8202282) for 
>> TestCommon.makeCommandLineForAppCDS() cleanup.
>> - Removed case 2, 3 and 4 in SharedArchiveFile.java.
>> - Removed UseAppCDS.java test.
>> - Removed UseAppCDS in various tests.
>> - Changed to keep the original version of the classlist and renamed to 
>> classlist.raw.
>> - Changed check_nonempty_dir_in_shared_path_table() to report all non-empty 
>> directories in the shared path table entries before exiting VM.
>> Full webrev:
>> http://java.se.oracle.com:10065/mdash/jobs/jianzhou-jdk-20180426-0406-20150
>> Tested all modified tests locally. Rerunning hs-tier1 ~ hs-tier5 tests.
>> Thanks for all the suggestions!
>> Jiangli
>>> On Apr 25, 2018, at 5:24 PM, Jiangli Zhou <jiangli.z...@oracle.com> wrote:
>>> 
>>> Hi David,
>>> 
>>>> On Apr 25, 2018, at 3:12 PM, David Holmes <david.hol...@oracle.com> wrote:
>>>> 
>>>> Hi Jiangli,
>>>> 
>>>> On 26/04/2018 3:39 AM, Jiangli Zhou wrote:
>>>>> Hi David,
>>>>> Thanks a lot for the review!
>>>>>> On Apr 24, 2018, at 11:17 PM, David Holmes <david.hol...@oracle.com> 
>>>>>> wrote:
>>>>>> 
>>>>>> cc'ing build-dev for the makefile change
>>>>>> 
>>>>>> Hi Jiangli,
>>>>>> 
>>>>>> On 25/04/2018 10:53 AM, Jiangli Zhou wrote:
>>>>>>> Please review the following changes that streamline the support for 
>>>>>>> application class data sharing by eliminating the requirement of using 
>>>>>>> -XX:+UseAppCDS to enable the feature. The support for application class 
>>>>>>> data sharing is now enabled transparently when application classes or 
>>>>>>> platform classes present in the classlist or generated archive with 
>>>>>>> -Xshare:dump/on/auto.
>>>>>>>         RFE: https://bugs.openjdk.java.net/browse/JDK-8193213
>>>>>>>         Bug: https://bugs.openjdk.java.net/browse/JDK-8182731
>>>>>> 
>>>>>> These issues are not publicly visible, can you change them to be so?
>>>>> Done. Thanks for noticing that!
>>>>>> 
>>>>>>>         webrev: 
>>>>>>> http://cr.openjdk.java.net/~jiangli/8193213_8182731/webrev.00/
>>>>>> 
>>>>>> Overall this seems fine. Thanks for explaining the logic changes below - 
>>>>>> much appreciated!
>>>>>> 
>>>>>> One query: why was UseAppCDS not removed from the tests (or at least the 
>>>>>> tests you were modifying anyway) ? They will all need updating before 12 
>>>>>> when the flag is expired.
>>>>> The usages are left as backwards compatibility check. They also serve the 
>>>>> testing purpose to make sure the presence of the flag does not cause any 
>>>>> unexpected behavior. Those are the main reasons why I didn’t remove the 
>>>>> flag usages in this webrev.
>>>> 
>>>> This sounds like you are basically testing whether obsoleting the flag has 
>>>> worked correctly.
>>> 
>>> Right, that was part of the intention.
>>> 
>>>> You don't need to do that through formal testing. A simple run of "java 
>>>> -XX:+UseAppCDS" should show the obsoletion warning and that's that. We 
>>>> don't maintain an obsolete flag test the way we do for deprecated flags.
>>> 
>>> That sounds reasonable.
>>> 
>>>> 
>>>> So IMHO there's really no reason to keep the flag in any of the tests. As 
>>>> I said they will all have to be removed when the flag is expired in 12.
>>> 
>>> Ok. I’ll remove the flag from the tests.
>>> 
>>> Thanks!
>>> 
>>> Jiangli
>>> 
>>>> 
>>>> Thanks,
>>>> David
>>>> 
>>>>>> 
>>>>>> test/hotspot/jtreg/runtime/appcds/SharedArchiveFile.java
>>>>>> 
>>>>>> Test 2 reference to UseAppCDS seems unnecessary now.
>>>>>> Test 3 is not needed as you're not using any diagnostic flag now.
>>>>>> Test 4 seems unnecessary now.
>>>>> Will do.
>>>>>> 
>>>>>> test/hotspot/jtreg/runtime/appcds/TestCommon.java
>>>>>> 
>>>>>> makeCommandLineForAppCDS should just be removed (yes that will cause 
>>>>>> some churn in the other tests) - but this can be a follow up test 
>>>>>> cleanup.
>>>>> Ok.
>>>>>> 
>>>>>> test/hotspot/jtreg/runtime/appcds/UseAppCDS.java
>>>>>> 
>>>>>> This test no longer makes much sense to me. The only tests should be 
>>>>>> that app classes get archived and used. It makes no sense to claim to be 
>>>>>> testing -XX:+UseAppCDS when that flag is obsolete. Likewise now that it 
>>>>>> is obsolete you don't need to test that -XX:-UseAppCDS has no affect.
>>>>> Sounds reasonable. I’ll remove UseAppCDS.java. There are existing tests 
>>>>> that check app classes get archived and used.
>>>>> Thanks!
>>>>> Jiangli
>>>>>> 
>>>>>> Thanks,
>>>>>> David
>>>>>> 
>>>>>> 
>>>>>>> Highlights of the changes:
>>>>>>> * UseAppCDS is obsolete in JDK 11
>>>>>>> * Remove the +UnlockCommercialFeatures requirement when using 
>>>>>>> application class data sharing in OracleJDK binary
>>>>>>> * SharedArchiveFile is a product flag for all configurations in JDK 11
>>>>>>> * DumpLoadedClassList produces a complete classlist including all 
>>>>>>> loaded library and application classes
>>>>>>> Thanks David Holmes for his guidance on CSR process.
>>>>>>> Following are the details for the VM and test changes:
>>>>>>> - Removed various ‘if (UseAppCDS)’ checks and UseAppCDS asserts.
>>>>>>> - Removed some of the CDS/AppCDS specifics from general class loading 
>>>>>>> code.
>>>>>>> - Removed scattered checks for non-empty directory. Dump time non-empty 
>>>>>>> directory check is done at one central place, 
>>>>>>> FileMapInfo::check_nonempty_dir_in_shared_path_table() after loading 
>>>>>>> all classes on the classlist. The behavior is backwards compatible:
>>>>>>>  - If no app/platform classes are loaded, dump time only reports error 
>>>>>>> if non-empty directory exists in -Xbootclasspath/a path
>>>>>>>  - If app/platform classes are loaded, dump time reports error for any 
>>>>>>> non-empty directory exists in -Xbootclasspath/a path, class path, or 
>>>>>>> module path
>>>>>>> - Removed unnecessary ‘if (!DumpSharedSpaces)’ from 
>>>>>>> SharedClassUtil::initialize(). The code path is only executed when 
>>>>>>> UseSharedSpaces is enabled.
>>>>>>> - Return immediately in 
>>>>>>> SystemDictionaryShared::find_or_load_shared_class() if the archive 
>>>>>>> header indicates there is no app or platform classes in the shared 
>>>>>>> archive. This reduces overhead in class loading if the shared archive 
>>>>>>> only contains system classes. It also provides backwards compatibility 
>>>>>>> in cases where shared application classes should be disabled. For 
>>>>>>> example, when the default system class loader is replaced by user 
>>>>>>> provided loader, archived application classes are inactive (not loaded 
>>>>>>> from archive) at runtime without affecting the use of archived system 
>>>>>>> classes.
>>>>>>> - Changed GenerateLinkOptData.gmk to filter out HelloClasslist from the 
>>>>>>> default classlist in JDK image, which is generated using 
>>>>>>> DumpLoadedClassList option. Thanks for David and Ioi's input on this.
>>>>>>> - Updated various cds/appcds tests to reflect the JVM changes. The use 
>>>>>>> of -XX:+UseAppCDS in tests remains unchanged.
>>>>>>>  - Removed -XX:+UnlockCommercialFeatures for -XX:+UseAppCDS in tests
>>>>>>>  - Removed -XX:+UnlockDiagnosticVMOptions for -XX:SharedArchiveFile in 
>>>>>>> tests
>>>>>>>  - Updated NonBootLoaderClasses.java: ensure app/platform classes on 
>>>>>>> classlist are archived without -XX:+UseAppCDS
>>>>>>>  - Updated DirClasspathTest.java: reflect the change for non-empty 
>>>>>>> directory handling
>>>>>>>  - Updated MismatchedUseAppCDS.java:  -XX:-UseAppCDS has no effect
>>>>>>> Tested with all cds and appcds tests locally with both fastdebug and 
>>>>>>> release builds. Tested with hs-teir1, hs-tier2, jdk-tier1 and 
>>>>>>> jdk-tier2. The hs-tier3, hs-tier4 and hs-tier4 are in progress.
>>>>>>> Thanks,
>>>>>>> Jiangli
>>> 

Reply via email to