Hi Magnus,

Thanks a lot for the review!

Jiangli

> On Apr 25, 2018, at 2:17 AM, Magnus Ihse Bursie 
> <magnus.ihse.bur...@oracle.com> wrote:
> 
> 
> 
> On 2018-04-25 08:17, David Holmes 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?
>> 
>>>     webrev: http://cr.openjdk.java.net/~jiangli/8193213_8182731/webrev.00/
> Build changes look good.
> 
> /Magnus
>> 
>> 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.
>> 
>> 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.
>> 
>> 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.
>> 
>> 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.
>> 
>> 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