Improve root set used by hat
Joseph D. Darcy
Joe.Darcy at Sun.COM
Thu Oct 8 11:02:29 PDT 2009
Sundar,
If you think this change should go back to OpenJDK 6 and other releases,
please work with Keith to sponsor the change.
Thanks,
-Joe
A. Sundararajan wrote:
> Hi,
>
> This change looks good to me. Thanks for finding this issue and the fix!
>
> Thanks,
> -Sundar
>
> Keith Randall wrote:
>> Here's a simpler patch that never makes Roots for these static fields
>> in the first place:
>>
>> --- com/sun/tools/hat/internal/model/JavaStatic.java
>> ***************
>> *** 57,64 ****
>> id = ((JavaObjectRef)value).getId();
>> }
>> value = value.dereference(snapshot, field);
>> ! if (value.isHeapAllocated() &&
>> ! clazz.getLoader() == snapshot.getNullThing()) { //
>> static fields are only roots if they are in classes loaded by the
>> root classloader.
>> JavaHeapObject ho = (JavaHeapObject) value;
>> String s = "Static reference from " + clazz.getName()
>> + "." + field.getName();
>> --- 57,63 ----
>> id = ((JavaObjectRef)value).getId();
>> }
>> value = value.dereference(snapshot, field);
>> ! if (value.isHeapAllocated()) {
>> JavaHeapObject ho = (JavaHeapObject) value;
>> String s = "Static reference from " + clazz.getName()
>> + "." + field.getName();
>>
>>
>> On Wed, Oct 7, 2009 at 1:49 AM, Alan Bateman <Alan.Bateman at sun.com
>> <mailto:Alan.Bateman at sun.com>> wrote:
>>
>> A. Sundararajan wrote:
>>
>> I agree. Static fields of classes loaded by non-bootstrap
>> loaders should not be part of root set.
>>
>> PS. I am not sure if this is a bug with hat or with heap
>> dumpers (the hotspot built-in dumper and SA's dumper). I don't
>> remember how "roots" is filled. May be, these static fields
>> should not be flagged as roots?
>>
>> -Sundar
>>
>> At least for the built-in heap dumper, static fields aren't
>> generated as roots (instead it's system classes and temporary
>> placeholders in the dictionary that are generated to the dump as
>> "sticky classes", to use a HPROF term). So I suspect this is more
>> likely to be a jhat issue.
>>
>> -Alan.
>>
>>
>
More information about the jdk6-dev
mailing list