RFR(S): 8156760: VM crashes if -XX:-ReduceInitialCardMarks is set
thomas.schatzl at oracle.com
Tue May 24 07:13:50 UTC 2016
On Di, 2016-05-24 at 10:54 +0200, Tobias Hartmann wrote:
> Hi Dean,
> On 23.05.2016 20:09, dean.long at oracle.com wrote:
> > Hi Tobias. I was just wondering, how do we know that the destination
> > object is in Eden, both now and in the future, and what would happen if
>> it wasn't? Would we get a nice assert somewhere, or would we end up
>> with a hard-to-find bug?
Hard-to-find bug. Please add an assertion.
> Thanks for the feedback! From reading the G1 code, I assumed that a
> newly allocated object is always in Eden. Looking at the code again,
> I'm not sure what happens if the Eden space is full. If allocations
> may happen in the old generation as well, we need a runtime check for
> the card value. I don't think we have an assert/verification that
> checks this.
> Could someone from GC please verify this?
all "small" object allocations go into eden.
If eden is exhausted, we either issue a GC, or if we can't, expand eden.
The only exceptions are large objects ("humongous", > half a region
size). These always go into old gen directly.
More information about the hotspot-dev