review request for CR 6361589
Yumin Qi
Yumin.Qi at Sun.COM
Thu Dec 10 20:10:13 PST 2009
Thanks.
I modified the code and submitted again. Please take a look again, will
commit if it is OK.
Thanks
Yumin
Coleen Phillimore wrote:
>
> Yumin,
> I've already reviewed a previous version and this still looks great to
> me. I hope this makes diagnosing crashes during gc much better,
> rather than having to decode the thread manually as you've been doing
> for years.
> Thanks everyone for the additional comments. The later suggested
> changes are really good.
>
> Coleen
>
> Yumin Qi wrote:
>> Thanks for you all the good suggestions:
>>
>> 1) update the hierarchy comments --- we miss some there
>> 2) Use c'tor-d'tor idiom for remembering JavaThread in GC thread
>> 3) Add one more STEP (135)
>> 4) update vmStructs so the SA can check this value.
>>
>> Thanks
>> Yumin
>>
>>
>>
>> David Holmes - Sun Microsystems wrote:
>>> Hi Yumin,
>>>
>>> Can you update the thread hierarchy comments in thread.hpp:
>>>
>>> 49 // Class hierarchy
>>> 50 // - Thread
>>> 51 // - VMThread
>>> 52 // - JavaThread
>>> 53 // - WatcherThread
>>>
>>> This seems incomplete anyway so it would be good to update it.
>>>
>>> I would also find it useful to add more comments to the NamedThread
>>> class explaining the role of this new field. It really has nothing
>>> to do with being a "named thread" - but then NamedThread should
>>> really have been called something more general. Pity we can't rename
>>> it - can we? :)
>>>
>>> In vmError.cpp:
>>>
>>> 506 // printing Java thread stack trace if it is involved in GC
>>> crash
>>> 507
>>> 508 if (_verbose && (_thread->is_Named_thread())) {
>>>
>>> Can/Should this be a new STEP?
>>>
>>> David
>>>
>>> Yumin Qi said the following on 12/11/09 08:50:
>>>> Tom,
>>>>
>>>> Thanks, changed as pointed.
>>>> Sorry I forget to include GC group.
>>>>
>>>> Can someone else give a look?
>>>>
>>>> http://cr.openjdk.java.net/~minqi/6361589
>>>>
>>>>
>>>>
>>>> Thanks
>>>> Yumin
>>>>
>>>> Tom Rodriguez wrote:
>>>>> Overall this looks pretty nice.
>>>>>
>>>>> java_thread_gc isn't a very clear name. Maybe collected_thread or
>>>>> processed_thread? The comment should describe it's purpose more
>>>>> explicitly.
>>>>>
>>>>> Is this assert really needed?
>>>>>
>>>>> + assert(thread != this, "Should not be java thread itself");
>>>>>
>>>>> I think you should add is_NamedThread() instead of distinguishing
>>>>> all these cases individually.
>>>>>
>>>>> If VMThread is now a NamedTread why don't you call set_name
>>>>> instead of having it override name again?
>>>>>
>>>>> vmError.cpp:
>>>>>
>>>>> I think the printing output should look more like this:
>>>>>
>>>>> + st->print_cr("JavaThread " PTR_FORMAT " was being
>>>>> processed during the crash, id = " UINTX_FORMAT, jt,
>>>>> jt->osthread()->thread_id());
>>>>>
>>>>> tom
>>>>>
>>>>> On Dec 9, 2009, at 2:49 PM, Yumin Qi wrote:
>>>>>
>>>>>
>>>>>> Fixed 6361589: Print out stack trace for target thread of GC crash
>>>>>>
>>>>>> http://cr.openjdk.java.net/~minqi/6361589
>>>>>>
>>>>>> Comments: This is a facility to assist for JVM crash analysis. To
>>>>>> implement this function, it needs record JavaThread which may
>>>>>> involve crash somewhere in GC thread. The place chosen here is
>>>>>> NamedThread from which all GC threads but VMThread derive. I
>>>>>> change VMThread's base from Thread to NamedThread, so the
>>>>>> recording of JavaThread covers for GC threads and VMThread. Once
>>>>>> the JavaThread recorded in GC thread seen during error report,
>>>>>> its stack trace be printed out. To test this function, add a
>>>>>> debug flag CrashGCForDumpingJavaThread, once it is set, it will
>>>>>> crash immediately in VMThread or GC Thread to core dump. Note
>>>>>> this is for test only purpose, no defects in involved JavaThread.
>>>>>>
>>>>>>
>>>>>> Thanks
>>>>>> Yumin
>>>>>>
>>>>>
>>>>>
>>>>
>>
>
More information about the hotspot-runtime-dev
mailing list