You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by jingxia xing <xi...@gmail.com> on 2006/08/29 05:51:48 UTC

how to use the jet?

I instrument some printf in the JIT_compile_method_with_params in
jitrino/sr/jet/jet.cpp. But no output in my printf.Does it need some option
to turn it on?Thansk.

Re: how to use the jet?

Posted by Egor Pasko <eg...@gmail.com>.
On the 0x1D4 day of Apache Harmony jingxia xing wrote:
> I want to profile some memory access patterns, and try to find out
> which are the most hot ones.

Sounds interesting!

> BTW, I find that I undefine MACRO USE_FAST_PATH, it will happen with
> assert errors (just a HelloWorld application)?  Does it mean that
> JET must be first used to get some profile information?

Yes, exactly. Currently, JET provides entry-backedge profile that is
used by OPT. AFAIR, generating profile in OPT is disabled now, but it
is the subject to change soon :)

I did NOT try to undef USE_FAST_PATH, and this is not what is supposed
to be done. We have 'Execution Manager' that decides which JIT to use
on a method and in which mode (profile-generating, profile-consuming
or no-profile). 

Try to run VM with options:
-Xem opt
They tell EM to disable JET. AFAIR, there is no profiling in
this mode today.

Execution manager can be configured via a simple rule-based config
file. Feel free to ask questions on it. BTW, Mikhail Fursov is a great
expert of EM.

-- 
Egor Pasko, Intel Managed Runtime Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Re: how to use the jet?

Posted by jingxia xing <xi...@gmail.com>.
I want to profile some memory access patterns, and try to find out which are
the most
hot ones.
BTW, I find that I undefine MACRO USE_FAST_PATH, it will happen with assert
errors
(just a HelloWorld application)?
Does it mean that JET must be first used to get some profile information?

29 Aug 2006 21:07:48 +0700, Egor Pasko <eg...@gmail.com>:
>
> On the 0x1D4 day of Apache Harmony jingxia xing wrote:
> > Yeah, Weldon`s way works. Thanks!
>
> Great! I am soooo glad :)
>
> BTW, are you having some well-defined ideas what to do with Harmony JITs?
>
> --
> Egor Pasko, Intel Managed Runtime Division
>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>

Re: how to use the jet?

Posted by Egor Pasko <eg...@gmail.com>.
On the 0x1D4 day of Apache Harmony jingxia xing wrote:
> Yeah, Weldon`s way works. Thanks!

Great! I am soooo glad :)

BTW, are you having some well-defined ideas what to do with Harmony JITs?

-- 
Egor Pasko, Intel Managed Runtime Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Re: how to use the jet?

Posted by jingxia xing <xi...@gmail.com>.
Yeah, Weldon`s way works. Thanks!

29 Aug 2006 17:26:35 +0700, Egor Pasko <eg...@gmail.com>:
>
> On the 0x1D4 day of Apache Harmony jingxia xing wrote:
> > Hi, Egor,
> >    It now works. It doesn`t work first because I add the printf as
> follows:
> > #if defined(_DEBUG) || defined(JIT_STATS) || defined(JIT_LOGS)
> >    fprintf(stdout, "");
> > #endif
> >
> >    And the default cfg for jitrino is: release. So the _DEBUG is not
> > defined. So I modified
> > the  $ANT_COMMAND -f ./make/build.xml -Dvm.jitrino.cfg=debug "$@"  ||
> ERROR
> > in build.sh.
> > I have to do this because I want to get more trace from JET.
> >    Then I build the drlvm again, but this time error happens in
> compiling
> > it:
> > defined in discarded section
>
> [snip]
>
> > `.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
> > ../_obj/trace.o
> >        [cc] `.L265' referenced in section `.rodata' of ../_obj/trace.o:
> > defined in discarded section
> > `.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
> > ../_obj/trace.o
> >        [cc] collect2: ld returned 1 exit status
> >
> >        The compile i use is gcc-3.4.6, gcc-3.3.4, both have errors
> > happening. Can you help me to find it out. Thanks
>
> try
> ./build.sh clean
> maybe, it helps...
>
> Also look at what Weldon did to enable debug mode in Jitrino (windoze):
> http://article.gmane.org/gmane.comp.java.harmony.devel/10181
>
> I use a variation of this patch. We should finish these changes into a
> complete patch, check if pre-commit tests pass, and apply it.
>
> --
> Egor Pasko, Intel Managed Runtime Division
>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>

Re: how to use the jet?

Posted by Egor Pasko <eg...@gmail.com>.
On the 0x1D4 day of Apache Harmony jingxia xing wrote:
> Hi, Egor,
>    It now works. It doesn`t work first because I add the printf as follows:
> #if defined(_DEBUG) || defined(JIT_STATS) || defined(JIT_LOGS)
>    fprintf(stdout, "");
> #endif
> 
>    And the default cfg for jitrino is: release. So the _DEBUG is not
> defined. So I modified
> the  $ANT_COMMAND -f ./make/build.xml -Dvm.jitrino.cfg=debug "$@"  || ERROR
> in build.sh.
> I have to do this because I want to get more trace from JET.
>    Then I build the drlvm again, but this time error happens in compiling
> it:
> defined in discarded section

[snip]

> `.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
> ../_obj/trace.o
>        [cc] `.L265' referenced in section `.rodata' of ../_obj/trace.o:
> defined in discarded section
> `.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
> ../_obj/trace.o
>        [cc] collect2: ld returned 1 exit status
> 
>        The compile i use is gcc-3.4.6, gcc-3.3.4, both have errors
> happening. Can you help me to find it out. Thanks

try 
./build.sh clean
maybe, it helps...

Also look at what Weldon did to enable debug mode in Jitrino (windoze):
http://article.gmane.org/gmane.comp.java.harmony.devel/10181

I use a variation of this patch. We should finish these changes into a
complete patch, check if pre-commit tests pass, and apply it.

-- 
Egor Pasko, Intel Managed Runtime Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Re: how to use the jet?

Posted by jingxia xing <xi...@gmail.com>.
Hi, Egor,
   It now works. It doesn`t work first because I add the printf as follows:
#if defined(_DEBUG) || defined(JIT_STATS) || defined(JIT_LOGS)
   fprintf(stdout, "");
#endif

   And the default cfg for jitrino is: release. So the _DEBUG is not
defined. So I modified
the  $ANT_COMMAND -f ./make/build.xml -Dvm.jitrino.cfg=debug "$@"  || ERROR
in build.sh.
I have to do this because I want to get more trace from JET.
   Then I build the drlvm again, but this time error happens in compiling
it:

     [cc] `.L1249' referenced in section `.rodata' of
../_obj/JavaLabelPrepass.o: defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino16JavaLabelPrepass11getJavaTypeEPNS_4TypeE' of
../_obj/JavaLabelPrepass.o
       [cc] `.L1234' referenced in section `.rodata' of
../_obj/JavaLabelPrepass.o: defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino16JavaLabelPrepass11getJavaTypeEPNS_4TypeE' of
../_obj/JavaLabelPrepass.o
       [cc] `.L1248' referenced in section `.rodata' of
../_obj/JavaLabelPrepass.o: defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino16JavaLabelPrepass11getJavaTypeEPNS_4TypeE' of
../_obj/JavaLabelPrepass.o
       [cc] `.L1235' referenced in section `.rodata' of
../_obj/JavaLabelPrepass.o: defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino16JavaLabelPrepass11getJavaTypeEPNS_4TypeE' of
../_obj/JavaLabelPrepass.o
       [cc] `.L1236' referenced in section `.rodata' of
../_obj/JavaLabelPrepass.o: defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino16JavaLabelPrepass11getJavaTypeEPNS_4TypeE' of
../_obj/JavaLabelPrepass.o
       [cc] `.L1237' referenced in section `.rodata' of
../_obj/JavaLabelPrepass.o: defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino16JavaLabelPrepass11getJavaTypeEPNS_4TypeE' of
../_obj/JavaLabelPrepass.o
       [cc] `.L1247' referenced in section `.rodata' of
../_obj/JavaLabelPrepass.o: defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino16JavaLabelPrepass11getJavaTypeEPNS_4TypeE' of
../_obj/JavaLabelPrepass.o
       [cc] `.L251' referenced in section `.rodata' of ../_obj/trace.o:
defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
../_obj/trace.o
       [cc] `.L250' referenced in section `.rodata' of ../_obj/trace.o:
defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
../_obj/trace.o
       [cc] `.L258' referenced in section `.rodata' of ../_obj/trace.o:
defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
../_obj/trace.o
       [cc] `.L259' referenced in section `.rodata' of ../_obj/trace.o:
defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
../_obj/trace.o
       [cc] `.L262' referenced in section `.rodata' of ../_obj/trace.o:
defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
../_obj/trace.o
       [cc] `.L265' referenced in section `.rodata' of ../_obj/trace.o:
defined in discarded section
`.gnu.linkonce.t._ZN7Jitrino3Jet8Compiler5fetchEjRNS0_5JInstE' of
../_obj/trace.o
       [cc] collect2: ld returned 1 exit status

       The compile i use is gcc-3.4.6, gcc-3.3.4, both have errors
happening. Can you help me to find it out. Thanks

Re: how to use the jet?

Posted by Egor Pasko <eg...@gmail.com>.
On the 0x1D4 day of Apache Harmony jingxia xing wrote:
> I instrument some printf in the JIT_compile_method_with_params in
> jitrino/sr/jet/jet.cpp. But no output in my printf.Does it need some option
> to turn it on?Thansk.

try the same with:
jet.cpp:223: compile_with_params

which works for me :)

-- 
Egor Pasko, Intel Managed Runtime Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org