Review request: 8004710: NPG: jmap could throw sun.jvm.hotspot.types.WrongTypeException after PermGen removal
Jon Masamitsu
jon.masamitsu at oracle.com
Tue Jan 29 16:18:53 PST 2013
On 01/29/13 14:01, Stefan Karlsson wrote:
> On 29 jan 2013, at 22:53, Jon Masamitsu<jon.masamitsu at oracle.com> wrote:
>
>> Stefan,
>>
>> Changes look correct.
> Thanks.
>
>> Did you consider calculating the value for endReserve() all
>> in the VM (similar to the way ReserveForAllocationPrefetch
>> is calculated during initialization) and passing the value
>> to the SA the way ReserveForAllocationPrefetch is passed?
>> If ReserveForAllocationPrefetch is not used anywhere else,
>> you could substitute it (TLabEndReserve as a possible name)
>> for ReserveForAllocationPrefetch.
> No i didn't think about that. I just tried to mimic the VM code in the SA code. Would you prefer if I changed it to use your alternative solution?
If you can hide that type of detail from the SA, I think
it's worth a little bit more work. Since it's already broken,
you can put the change into hotspot first and then
push the change to use it later.
Thanks.
Jon
>
> thanks,
> StefanK
>
>
>> Jon
>>
>> On 01/29/13 02:58, Stefan Karlsson wrote:
>>> http://cr.openjdk.java.net/~stefank/8004710/webrev/
>>>
>>> This bug is in the GC specific code in the SA agent.
>>>
>>> From the bug report:
>>> There's a bug in ObjectHeap.collectLiveRegions(), which tries to collect the regions of the heap that contain live objects. It removes the [top, end) regions of a TLAB, since we don't have live objects in those regions. Unfortunately, this doesn't consider the small alignment_reserve() part at the end of the TLAB, and we try to decode an object in that unused memory region.
>>>
>>> It's not related to the PermGen removal, but the failure mode was probably changed.
>>>
>>> thanks,
>>> StefanK
>>>
More information about the hotspot-dev
mailing list