best practices for testing JVM changes that may interact with CDS?

Ioi Lam ioi.lam at oracle.com
Thu Jul 18 14:15:11 PDT 2013


Harold, the problem with -Xshare:on only happens with 64-bit VMs 
(because -Xshare:auto is broken there -- JDK-8005933).

I usually test CDS-related change with 32-bit client VM, and run with 
default sharing parameters (i.e., do not specify -Xshare, which means 
the default -Xshare:auto will be used). This way CDS will be used for 
most tests, but would be automatically disabled with certains tests 
(jvmti??, sa??, don't remember which one) that cannot handle CDS. The 
results of the tests should be exactly the same as if you had specified 
-Xshare:off.

John, for vtable, do you mean this code?

|void InstanceKlass::restore_unshareable_info(TRAPS) {||
||  ...||
||  for (int index2 = 0; index2 < num_methods; ++index2) {||
||    methodHandle m(THREAD, methods->at(index2));||
||    m()->link_method(m, CHECK);||
||    // restore method's vtable by calling a virtual function||
||    m->restore_vtable();||    /// <<<<<< here??
||  }||
|
Thanks

- Ioi

On 07/18/2013 12:54 PM, harold seigel wrote:
> Hi John,
>
> You could try creating a CDS region (-Xshare:dump) and then running 
> the JTREG harness and the hotspot JTREG tests with -Xshare:on to test 
> this.  Unfortunately, even if your changes are fine, you will get 40+ 
> failures because some of the tests can't handle -Xshare:on.
>
> Harold
>
> On 7/18/2013 2:59 PM, John Rose wrote:
>> David Chase and I are testing a JVM change that may affect the layout 
>> of vtables.  I know vtables are special-cased in CDS (class data 
>> sharing) code, which dumps and reloads metadata including vtables.
>>
>> What is the best way to perform regression tests for changes that 
>> might interact with CDS?  Is it enough to run jtreg tests? I notice 
>> that there appears to be a dump/load end-to-end test in 
>> test/runtime/SharedArchiveFile/.
>>
>> Thanks,
>> — John
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130718/c3bcbf07/attachment-0001.html 


More information about the hotspot-runtime-dev mailing list