hsdis output from JVMCI

forax at univ-mlv.fr forax at univ-mlv.fr
Thu May 18 08:05:12 UTC 2017


> De: "Yasumasa Suenaga" <yasuenag at gmail.com>
> À: "Remi Forax" <forax at univ-mlv.fr>
> Cc: hotspot-compiler-dev at openjdk.java.net
> Envoyé: Jeudi 18 Mai 2017 05:02:55
> Objet: Re: hsdis output from JVMCI

> 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.

ok, good to know, 
hence the 'resolved' in HotSpotResolvedJavaMethod i suppose. 

> Anyway, I'm waiting the response about hsdis.

i can't hep you on that :) 

> Thanks,

> Yasumasa

cheers, 
Rémi 

> [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/4330cc2f/attachment.html>


More information about the hotspot-compiler-dev mailing list