<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix"><br>
<br>
On 5/6/20 11:12, <a class="moz-txt-link-abbreviated" href="mailto:serguei.spitsyn@oracle.com">serguei.spitsyn@oracle.com</a> wrote:<br>
</div>
<blockquote type="cite"
cite="mid:e2547016-2857-c145-6443-75356ea412b0@oracle.com">
<div class="moz-cite-prefix">On 5/6/20 10:58, <a
class="moz-txt-link-abbreviated"
href="mailto:coleen.phillimore@oracle.com"
moz-do-not-send="true">coleen.phillimore@oracle.com</a> wrote:<br>
</div>
<blockquote type="cite"
cite="mid:6bb57ba8-6596-ceb8-22c0-8d1a73ecae68@oracle.com"> <br>
<br>
<div class="moz-cite-prefix">On 5/6/20 1:04 PM, <a
class="moz-txt-link-abbreviated"
href="mailto:serguei.spitsyn@oracle.com"
moz-do-not-send="true">serguei.spitsyn@oracle.com</a> wrote:<br>
</div>
<blockquote type="cite"
cite="mid:e63d8c89-3a05-95a6-4f94-1671d4cf2873@oracle.com">
<div class="moz-cite-prefix">On 5/6/20 03:40, <a
class="moz-txt-link-abbreviated"
href="mailto:coleen.phillimore@oracle.com"
moz-do-not-send="true">coleen.phillimore@oracle.com</a>
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:4087edea-8762-99ba-a74e-132768013136@oracle.com">
<br>
<br>
<div class="moz-cite-prefix">On 5/6/20 2:09 AM, <a
class="moz-txt-link-abbreviated"
href="mailto:serguei.spitsyn@oracle.com"
moz-do-not-send="true">serguei.spitsyn@oracle.com</a>
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:0129393d-c328-6a32-5186-cc42aeb40863@oracle.com">
<div class="moz-cite-prefix">On 5/5/20 17:04, Mikael
Vidstedt wrote:<br>
</div>
<blockquote type="cite"
cite="mid:6E6BB0A8-BC8B-48D5-A615-2739F078A2B5@oracle.com">
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">On May 5, 2020, at 4:48 PM, <a class="moz-txt-link-abbreviated" href="mailto:serguei.spitsyn@oracle.com" moz-do-not-send="true">serguei.spitsyn@oracle.com</a> wrote:
Hi Mikael,
The fixes in webrev look good to me.
I've just noticed a couple of more serviceability related things can be missed.
(Not sure if they are included into different chunk of fixes.)
One is libjvm_db.so which is for Solaris Pstack support:
make/hotspot/lib/CompileDtraceLibraries.gmk: # Note that libjvm_db.c has tests for COMPILER2, but this was never set by
make/hotspot/lib/CompileDtraceLibraries.gmk: LIBJVM_DB_OUTPUTDIR := $(JVM_VARIANT_OUTPUTDIR)/libjvm_db
make/hotspot/lib/CompileDtraceLibraries.gmk: NAME := jvm_db, \
make/hotspot/lib/CompileDtraceLibraries.gmk: SRC := $(TOPDIR)/src/java.base/solaris/native/libjvm_db, \
Another is DTrace support which also includes jhelper.d (support for DTrace jstack action which is for Solaris only):
make/hotspot/gensrc/GensrcDtrace.gmk
make/hotspot/lib/JvmDtraceObjects.gmk
It also impacts some other make files.
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">I believe you’ll find that these changes were included in the build system patch:
<a class="moz-txt-link-freetext" href="https://mail.openjdk.java.net/pipermail/build-dev/2020-May/027342.html" moz-do-not-send="true">https://mail.openjdk.java.net/pipermail/build-dev/2020-May/027342.html</a>
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~mikael/webrevs/8244224/webrev.00/build/open/webrev/" moz-do-not-send="true">http://cr.openjdk.java.net/~mikael/webrevs/8244224/webrev.00/build/open/webrev/</a>
Let me know if I missed something.</pre>
</blockquote>
<br>
The file <code></code>
make/hotspot/src/native/dtrace/generateJvmOffsets.cpp is
for Solaris only, and so, can be removed.<br>
It is for libjvm_db.so (provider for Solaris Pstack) and
jhelper.d (provider for Solaris DTrace jstack action).<br>
The jstack action (prints mixed java+native stack traces)
was never implemented other than for Solaris.<br>
</blockquote>
<br>
I wonder if this can be used to implement the same thing on
linux and if we can keep this? Thoughts?<br>
</blockquote>
<br>
I was also thinking about it. And DTrace kind of exists on Mac
OS as well.<br>
Yes, it can be used. But It will require the jstack action
implementation and the jhelper use on the DTrace side.<br>
</blockquote>
<br>
<blockquote type="cite"
cite="mid:e63d8c89-3a05-95a6-4f94-1671d4cf2873@oracle.com">
The same is true for the libjvm_db.so. It could be used in the
Linux Pstack utility to print mixed stack traces.<br>
(I see some pstack projects like this: <a
class="moz-txt-link-freetext"
href="https://github.com/peadar/pstack"
moz-do-not-send="true">https://github.com/peadar/pstack</a>
)<br>
</blockquote>
Yes, I was thinking specifically of the pstack utility and not
DTrace, just to get Java frames in ptrace. Could libjvm_db.so
be used for that?<br>
</blockquote>
<br>
Yes, it can be.<br>
The work needs to be done on the Linux side to get use of the
libjvm_db.so.<br>
We worked with the Solaris team in the past to make the Pstack to
print java frames (including virtual ones).<br>
The libjvm_db API came out from discussions with them.<br>
The interface is pretty simple:<br>
The Pstack does one initialization call and then in a loop
requests the java frame strings from the register context (pc, sp
and fp).<br>
Each time the libjvm_db returns corrected register state to help
with the stack walking steps.<br>
It is kind of assisted stack walking.<br>
</blockquote>
<br>
We had a local chat with Mikael and Coleen on this.<br>
<span style="color: rgb(29, 28, 29); font-family: Slack-Lato,
appleLogo, sans-serif; font-size: 15px; font-style: normal;
font-variant-ligatures: common-ligatures; font-variant-caps:
normal; font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: left; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(248, 248,
248); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;">The conclusion
is that we’ll remove it for now and restore it later if needed.<br>
This folder has to be also removed with this:<br>
</span><span style="color: rgb(29, 28, 29); font-family:
Slack-Lato, appleLogo, sans-serif; font-size: 15px; font-style:
normal; font-variant-ligatures: common-ligatures;
font-variant-caps: normal; font-weight: 400; letter-spacing:
normal; orphans: 2; text-align: left; text-indent: 0px;
text-transform: none; white-space: normal; widows: 2;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(248, 248, 248); text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;"><span style="color: rgb(29, 28, 29);
font-family: Slack-Lato, appleLogo, sans-serif; font-size: 15px;
font-style: normal; font-variant-ligatures: common-ligatures;
font-variant-caps: normal; font-weight: 400; letter-spacing:
normal; orphans: 2; text-align: left; text-indent: 0px;
text-transform: none; white-space: normal; widows: 2;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(248, 248, 248); text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;">src/java.base/solaris/native/libjvm_db<br>
<br>
</span>Thanks,<br>
Serguei<br>
</span><br>
<blockquote type="cite"
cite="mid:e2547016-2857-c145-6443-75356ea412b0@oracle.com"> <br>
Thanks,<br>
Serguei<br>
<br>
<blockquote type="cite"
cite="mid:6bb57ba8-6596-ceb8-22c0-8d1a73ecae68@oracle.com"> <br>
Coleen<br>
</blockquote>
</blockquote>
</body>
</html>