What are the conflicting points between Class-Data Sharing and ParNew/CMS/ParallelScavenge/G1?

Paul Hohensee paul.hohensee at oracle.com
Wed Apr 27 12:20:59 UTC 2011


CDS stores a non-relocatable permgen image, so in order to use it, the
jvm must be able to load it at the same address it occupied when it was
generated.  If I remember correctly, serial and CMS/Parnew/G1 put the
permgen above the old/young gens in the address space, while the
parallel collectors put it below the old/young gens.  There can be issues
with trying to map the permgen in the latter case, esp. on windows where
it's already a pain to find contiguous virtual address space for the heap
(dlls are loaded all over the place).  I believe CDS more-or-less works
with CMS/Parnew/G1, but no one's had time to get all the bugs out.
We'd welcome help. :)

Paul

On 4/14/11 5:14 AM, Krystal Mok wrote:
> Hi all,
>
> I've had this doubt for quite a long time but was too shy to ask on 
> this list. Anyway, here I go:
>
> According to the logic in hotspot/src/share/vm/runtime/arguments.cpp, 
> CDS doesn't work with ParNew/CMS/PS/G1. That means only serial GCs 
> works with CDS.
> I'd like to know, what are the conflicting points between CDS and 
> these parallel/concurrent GCs? Are there any plans to resolve the 
> conflicts, or are there any suggestions on how the conflicts would be 
> resolved?
>
> Sincerely,
> Kris Mok
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20110427/5509dfc1/attachment.htm>


More information about the hotspot-gc-dev mailing list