Request for review (S) 6588413: Use -fvisibility=hidden for gcc compiles

Coleen Phillimore coleen.phillimore at oracle.com
Mon Jan 24 11:15:41 PST 2011


Summary: Add option for gcc 4 and above, define JNIEXPORT and JNIIMPORT

open webrev at http://cr.openjdk.java.net/~coleenp/6588413_2/

This is an update to the code review.  I found symbols that we should 
have exported. I also found exported symbols that were old and unused 
and removed them.  Embedded question for Igor.

Tested with some SA tests and others.

Coleen

On 1/21/2011 3:39 PM, Coleen Phillimore wrote:
> On 1/21/2011 12:47 PM, Dmitry Samersoff wrote:
>> Coleen,
>>
>> 1. Hotspot uses a mapfile to hide unused symbols -
>>    could we just change the mapfile?
> Thanks Dmitry for this question because it prompted me to do more 
> searching and there were some definitions that should have JNIEXPORT 
> on them in the VM (AsyncGetCallTrace would have been broken!).   The 
> option -fvisibility=hidden does more than hide the symbols as the 
> mapfile does, it also allows the compiler to optimize the address 
> calculations for internal functions it calls.  I believe that is where 
> we get our performance improvements.
>>
>> 2. JNICALL is empty in both parts of #ifdef.
>
> Thanks, I fixed that.
>
> Coleen
>>
>> -Dmitry
>>
>>
>> On 2011-01-21 19:57, Coleen Phillimore wrote:
>>> Summary: Add option for gcc 4 and above, define JNIEXPORT and JNIIMPORT
>>> to visibility=default, add for jio_snprintf and others since
>>> -fvisibility=hidden overrides --version-script definitions.
>>>
>>> Performance increases measured by Volker and Tom;
>>>
>>> 5% (JBB2005) and 2% (JVM98) on Linux/IA64 and 1,5% (JBB2005) and
>>> 0,5% (JVM98) on Linux/PPC64
>>>
>>>
>>> on intel hardware:
>>>
>>> specjvm98 15 314.61 0.00 0.33 0.006 Yes
>>> javac 15 248.88 0.01 1.72 0.000 Yes
>>> jack 15 294.44 0.01 1.38 0.000 Yes
>>>
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/6588413/
>>> bug link at http://bugs.sun.com/view_bug.do?bug_id=6588413
>>>
>>> Tested with jmap for any serviceability impact, and tested hs_err_file
>>> decoding still works.
>>>
>>> Thanks,
>>> Coleen
>>>
>>
>>
>



More information about the hotspot-runtime-dev mailing list