hsdis output from JVMCI

Yasumasa Suenaga yasuenag at gmail.com
Thu May 18 03:02:55 UTC 2017


Hi Remi,

Thank you for reading my slides in spite of Japanese :-)

> slide 19: i believe that instead of printing the first tiers, you either
want the last one or better all the tiers,
>    IntStream.range(0, 4).filter(...).boxed().collect(Collectors.joining(",
"))

It is correct.
HotSpotResolvedJavaMethod#hasCompiledCodeAtLevel() collects data from
nmethod object [1].
It is single value [2] because one nmethod has one compiled code.


Anyway, I'm waiting the response about hsdis.


Thanks,

Yasumasa


[1]
http://hg.openjdk.java.net/jdk9/dev/hotspot/file/507f8a7678b4/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java#l430
[2]
http://hg.openjdk.java.net/jdk9/dev/hotspot/file/507f8a7678b4/src/share/vm/code/nmethod.hpp#l105


2017-05-17 19:28 GMT+09:00 Remi Forax <forax at univ-mlv.fr>:

> Hi Yasumasa,
> i've read the slides referenced on your github project,
>
> slide 19: i believe that instead of printing the first tiers, you either
> want the last one or better all the tiers,
>    IntStream.range(0, 4).filter(...).boxed().collect(Collectors.joining(",
> "))
>
> otherwise the whole deck is quite fun, thank you !
>
> Rémi
>
> ----- Mail original -----
> > De: "Yasumasa Suenaga" <yasuenag at gmail.com>
> > À: hotspot-compiler-dev at openjdk.java.net
> > Envoyé: Mercredi 17 Mai 2017 09:37:30
> > Objet: hsdis output from JVMCI
>
> > Hi all,
> >
> > I tried to disassemble JVMCI installed code via hsdis.
> > It works but I got duplicate output from hsdis.
> >
> > How to reproduce:
> >
> >   1. Clone reproducer from GitHub
> >        https://github.com/YaSuenag/jdt-2017-examples
> >
> >   2. Copy some files from hotspot testcase
> >        Please read README.md in this repository.
> >
> >   3. Edit Makefile to use hsdis
> >        - code-injection/Makefile
> >        - Enable UnlockDiagnosticVMOptions and CompilerDirectivesFile
> >
> >   4. Deploy hsdis to JDK 9 EA b169
> >
> >   5. Run reproducer
> >        $ make JAVA_HOME=/path/to/jdk9 syscall
> >
> >
> > hsdis is called from JVMCIEnv::register_method() and
> CodeInstaller::install().
> > So we get same output from hsdis twice.
> > I think we should fix it as following:
> >
> > -------------------------
> > diff -r d6d7e5caf497 src/share/vm/jvmci/jvmciCodeInstaller.cpp
> > --- a/src/share/vm/jvmci/jvmciCodeInstaller.cpp       Mon May 15
> 12:20:15 2017 +0200
> > +++ b/src/share/vm/jvmci/jvmciCodeInstaller.cpp       Tue May 17
> 16:21:08 2017 +0900
> > @@ -623,7 +623,7 @@
> >      if (nm != NULL && env == NULL) {
> >        DirectiveSet* directive = DirectivesStack::
> getMatchingDirective(method,
> >        compiler);
> >        bool printnmethods = directive->PrintAssemblyOption ||
> >        directive->PrintNMethodsOption;
> > -      if (printnmethods || PrintDebugInfo || PrintRelocations ||
> > PrintDependencies || PrintExceptionHandlers) {
> > +      if (!printnmethods && (PrintDebugInfo || PrintRelocations ||
> > PrintDependencies || PrintExceptionHandlers)) {
> >          nm->print_nmethod(printnmethods);
> >        }
> >        DirectivesStack::release(directive);
> > -------------------------
> >
> > Is this bug?
> > If so, I will file it to JBS and will upload webrev.
> >
> >
> > Thanks,
> >
> > Yasumasa
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20170518/5845ec54/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list