RFR (S): 8151499: gc/g1/g1OopClosures.inline.hpp: assert(_from->is_in_reserved(p)) failed: p is not in from

Tom Benson tom.benson at oracle.com
Fri Apr 1 15:38:05 UTC 2016


Hi,

On 4/1/2016 11:16 AM, Thomas Schatzl wrote:
> Hi,
>
> On Fri, 2016-04-01 at 10:41 -0400, Tom Benson wrote:
>> Hi Thomas,
>>
>> It doesn't seem like the test at line 181 is strictly necessary,
>> because
>> the comparison on the following line would fail if it was false:
>>
>>    181           _g1->heap_region_containing(p)->is_humongous() &&
>>    182           _from->humongous_start_region() == _g1
>> ->heap_region_containing(p)->humongous_start_region())
> 182 would then sigsev and fail if p were not in a humongous region,
> yes. Humongous_start_region() is NULL for non-humongous regions. I
> prefer an assert message though... :)

Right,  _g1 ->heap_region_containing(p)->humongous_start_region())  
would return NULL, and thus not be == to _from->humongous_start_region() 
.    Shouldn't SEGV...  ?


>> Also, should the test require be expanded to   @requires vm.gc ==
>> "G1" |
>> vm.gc == null   ?
> One of the tests runs uses parallel gc, so we only allow no gc
> specified.

OK.  I thought you'd want it run even if G1 was explicit.
Tom

>
> I added the test to the requires gc_g1 group to make sure it is only
> run when both parallel and g1 are compiled in. This seems to be the
> thing to do if you want to test specifically on g1 and other collectors
> only. See TestSystemGC.java (I think) in the same directory.
>
> Not sure.
>
> Thanks,
>    Thomas
>



More information about the hotspot-gc-dev mailing list