Review Request: 8011872: Include Bit Map addresses in the hs_err files

Stefan Karlsson stefan.karlsson at oracle.com
Thu Apr 11 07:33:43 UTC 2013


(readding hotspot-gc-dev)

On 04/10/2013 09:02 PM, Jon Masamitsu wrote:
> Changes look good.

Thanks.

>
> Did you see a case where _collector was NULL?  Or is this
> clean coding?
>
>> *+ CMSCollector::print_on_error(outputStream* st) {*
>> *+   CMSCollector* collector = ConcurrentMarkSweepGeneration::_collector;*
>> *+   if (collector != NULL) {*
>

This is just defensive programming.

The _collector will always be setup when we try to print the heap in the 
hs_err files. The logging is guarded by this:
      if (_verbose && Universe::is_fully_initialized()) {
        Universe::heap()->print_on_error(st);

The Universe is fully initialized in universe_post_init() and _collector 
is setup before that, deep down in universe_init().

thanks,
StefanK

> Jon
>
> On 4/10/2013 7:58 AM, Stefan Karlsson wrote:
>> http://cr.openjdk.java.net/~stefank/8011872/webrev.00/
>>
>> I propose that we start logging the placement of the bitmaps hs_err 
>> crash files.
>>
>> This will help identifies bugs where we have memory trashing in the 
>> bitmaps. Today, we have this kind of information for the card table 
>> but it's lacking for the bitmaps.
>>
>> Example outputs:
>>
>> -XX:+UseParallelOldGC:
>> Marking Bits: (ParMarkBitMap*) 0x00007ffff73a85e0
>>  Begin Bits: [0x00007fffe4200000, 0x00007fffe60b8000)
>>  End Bits:   [0x00007fffe60b8000, 0x00007fffe7f70000)
>>
>> -XX:+UseG1GC:
>> Marking Bits (Prev, Next): (CMBitMap*) 0x00007ffff0059628, 
>> (CMBitMap*) 0x00007ffff00596c0
>>  Prev Bits: [0x00007fffc5290000, 0x00007fffc7148000)
>>  Next Bits: [0x00007fffa2147000, 0x00007fffa3fff000)
>>
>> -XX:+UseConcMarkSweepGC:
>> Marking Bits: (CMSBitMap*) 0x00007ffff00b0ee8
>>  Bits: [0x00007fffce7f1000, 0x00007fffcfc6e800)
>>
>> Mod Union Table: (CMSBitMap*) 0x00007ffff00b0f88
>>  Bits: [0x00007ffff405c000, 0x00007ffff40adf60)
>>
>> Note that for simplicity this logs the memory used by the low level 
>> datastructure BitMap, and not the memory allocated in the GC specific 
>> bitmap data structures (E.g. CMBitMap). What this means is that we 
>> actually allocate up to about os::vm_allocation_granularity() more 
>> memoy at the end of the bitmap. If this information is essential we 
>> can add it later.
>>
>> thanks,
>> StefanK
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20130411/0a3cec29/attachment.htm>


More information about the hotspot-gc-dev mailing list