CMS parallel initial mark

Jon Masamitsu jon.masamitsu at oracle.com
Thu Jun 13 21:31:43 UTC 2013


On 6/13/13 11:54 AM, Hiroshi Yamauchi wrote:
>
>     > > - this patch is for DefNew/CMS only it seems. Is this correct?
>
>
> Yes.
>
>     > >
>     > > - in the Hotspot code base explicit != NULL checks are done
>     for whatever
>     > > reason. To keep the same style it would be nice to update the
>     checks
>     > > whether to do the sampling ("if (CMSEdenChunksRecordAlways &&
>     > > _next_gen)") accordingly.
>
>
> I'll fix these.
>
>     > >
>     > > (the next point is not an issue of the patch)
>     > > - the check whether there is a _next_gen is odd - I do not
>     think that
>     > > DefNew works as a generation without an older generation, but
>     I'm not
>     > > sure.
>     > You're correct that DefNew needs to have a _next_gen.
>     >
>     > > Looking at other similar code checking for _next_gen != NULL, the
>     > > response is typically to update _next_gen and then asserting that
>     > > _next_gen is != NULL. E.g.
>     > >
>     > >    if (_next_gen == NULL) {
>     > >      GenCollectedHeap* gch = GenCollectedHeap::heap();
>     > >      _next_gen = gch->next_gen(this);
>     > >      assert(_next_gen != NULL,
>     > >             "This must be the youngest gen, and not the only
>     gen");
>     > >    }
>     > >
>     > > Jon?
>     >
>     > Yes, except in a very few situations, _next_gen should be set.
>     > Exceptions I would expect is during initialization.  At the point
>     > Thomas indicates and assertion would be sufficient.
>     >
>     > assert(_next_gen != NULL, "...");
>
>     Thanks.
>
>
> I assume this discussion is out of scope of this patch. Let me know 
> otherwise.
>
>
Yes, not your code so fixing should not be part of your patch.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20130613/3b0609b9/attachment.htm>


More information about the hotspot-gc-dev mailing list