Re: 回复: RFR: 8237499: JFR event for the location where a new thread starts

Erik Gahlin erik.gahlin at oracle.com
Wed Jan 29 06:12:00 UTC 2020


Will do, but it could take a couple of weeks due other things 
(conferences etc.).

Erik

On 2020-01-29 01:51, Denghui Dong wrote:
> Thanks! Please help me to push it if everything is ok.
>
> Denghui Dong
>
>
>
>
>
> 来自钉钉专属商务邮箱 <(null)>
>
>     ------------------------------------------------------------------
>     发件人:Erik Gahlin<erik.gahlin at oracle.com>
>     日 期:2020年01月29日 05:50:57
>     收件人:Denghui Dong<denghui.ddh at alibaba-inc.com>;
>     hotspot-jfr-dev<hotspot-jfr-dev at openjdk.java.net>
>     主 题:Re: RFR: 8237499: JFR event for the location where a new
>     thread starts
>
>     Looks good!
>
>     Thanks for fixing this.
>
>     Erik
>
>     On 2020-01-28 18:07, Denghui Dong wrote:
>>     Good explanation!
>>     The webrev has been updated, please help review it :)
>>
>>     Denghui Dong
>>
>>         ------------------------------------------------------------------
>>         From:Erik Gahlin <erik.gahlin at oracle.com>
>>         Send Time:2020年1月28日(星期二) 20:38
>>         To:董登辉(卓昂) <denghui.ddh at alibaba-inc.com>; hotspot-jfr-dev
>>         <hotspot-jfr-dev at openjdk.java.net>
>>         Subject:Re: RFR: 8237499: JFR event for the location where a
>>         new thread starts
>>
>>         Hi Denghui,
>>
>>         On 2020-01-24 04:44, Denghui Dong wrote:
>>         Hi Erik,
>>          > set stackTrace="true" in metadata.xml
>>          Actually, I thought about it before. But two thing let me
>>         add a new field explicitly finally:
>>         1. EventThreadStart was also posted in jni.cpp, and there is
>>         no need to record the stack trace, we cannot control it if
>>         setting stackTrace="true".
>>
>>         Not sure I understand, but in jni.cpp you could do what you
>>         do today (set it to 0).
>>
>>         For jfrThreadLocal.cpp, you could check
>>         JfrEventSetting::has_stacktrace(EventThreadStart::eventId)).
>>
>>
>>         2.  I think adding an explicit filed can make us and users
>>         clear that the stack trace isn't recorded from the new thread
>>         but the parent thread. And
>>         there are also other events that have an explicit stack trace
>>         field(e.g. ExecutionSample).
>>
>>
>>         ExecutionSample and NativeMethodSample should probably have
>>         stackTrace="true" as well.
>>
>>         I don't think it matters from users point of view if the
>>         field is added implicitly or explicitly. Maybe if it was
>>         called "parentStackTrace", but that would lead to problems
>>         for JMC and the parser since they depend on the field being
>>         called "stackTrace". For us, it would make it more clear, but
>>         perhaps not that important.
>>
>>
>>         Another reason we may want to make the stack trace part of
>>         the event is that it will make it easier to configure. For
>>         example, we plan to add so you can set stack depth per event,
>>         for example in the JMC recording wizard.
>>         https://bugs.openjdk.java.net/browse/JDK-8134306
>>
>>         Thanks
>>         Erik
>>
>>
>>          > change the label of the thread field from "Java Thread" to
>>         "New Thread"
>>          It makes sense, I will update it.
>>
>>         Thanks
>>         Denghui Dong
>>         ------------------------------------------------------------------
>>         From:Erik Gahlin <erik.gahlin at oracle.com>
>>         Send Time:2020年1月23日(星期四) 21:44
>>         To:董登辉(卓昂) <denghui.ddh at alibaba-inc.com>; hotspot-jfr-dev
>>         <hotspot-jfr-dev at openjdk.java.net>
>>         Subject:Re: RFR: 8237499: JFR event for the location where a
>>         new thread starts
>>
>>         Hi Denghui,
>>
>>         Would it be possible to set stackTrace="true" in metadata.xml
>>         instead of adding a new field explicitly?
>>
>>         This allows users to turn on and off stack traces. You could
>>         check if stack trace is enabled and only record if needed.
>>
>>         I think it would be good to change the label of the thread
>>         field from "Java Thread" to "New Thread".
>>
>>         Thanks
>>         Erik
>>
>>         On 2020-01-19 09:13, Denghui Dong wrote:
>>         Hi Erik
>>           The webrev has been updated.
>>           I reuse the event type "EventThreadStart" to report the
>>         location where a new thread starts.
>>           Add two fields "stackTrace" and "parentThread"
>>         to EventThreadStart.
>>           Please help review it, thanks.
>>
>>         Best Regards
>>         Denghui Dong
>>         ------------------------------------------------------------------
>>         From:董登辉(卓昂) <denghui.ddh at alibaba-inc.com>
>>         Send Time:2020年1月18日(星期六) 21:25
>>         To:Erik Gahlin <erik.gahlin at oracle.com>; hotspot-jfr-dev
>>         <hotspot-jfr-dev at openjdk.java.net>
>>         Subject:Re: RFR: 8237499: JFR event for the location where a
>>         new thread starts
>>
>>         Hi Erik,
>>           Do you mean that we should reuse EventThreadStart rather
>>         than a new event? It's a good idea, I will try it.
>>
>>         Thanks
>>         Denghui Dong
>>         ------------------------------------------------------------------
>>         From:Erik Gahlin <erik.gahlin at oracle.com>
>>         Send Time:2020年1月18日(星期六) 21:12
>>         To:董登辉(卓昂) <denghui.ddh at alibaba-inc.com>
>>         Cc:hotspot-jfr-dev <hotspot-jfr-dev at openjdk.java.net>
>>         Subject:Re: RFR: 8237499: JFR event for the location where a
>>         new thread starts
>>
>>         Hi Denghui,
>>
>>         This will be useful, but I wonder if we shouldn’t extend the Thread Start event with stack trace and the parent thread? It will require some additional logic, but it would be a cleaner solution.
>>
>>         Thanks
>>         Erik
>>
>>         > On 18 Jan 2020, at 12:19, Denghui Dong
>>         <denghui.ddh at alibaba-inc.com> wrote:
>>         >
>>         > Hi,
>>         >
>>         > Could I have a review of a change that introduces an event for the location where a new thread starts.
>>         >
>>         > Summary:
>>         > There is already an event for thread start(EventThreadStart), but this event is committed in the new thread,
>>         > so users can't know the location where the thread starts, hence, it's necessary to introduce another event,
>>
>>         > it would be useful if the application exists thread leak problem.
>>         >
>>         > Bug: https://bugs.openjdk.java.net/browse/JDK-8237499
>>         > Webrev: http://cr.openjdk.java.net/~ddong/8237499/
>>         >
>>         > Thanks
>>         > Denghui Dong
>>         >
>>
>


More information about the hotspot-jfr-dev mailing list