PING: RFR: 8241439: jdk.NativeLibraryEvent hooks all opened regular files

Yasumasa Suenaga suenaga at oss.nttdata.com
Sat May 2 03:53:23 UTC 2020


PING: Could you review it?

>    JBS: https://bugs.openjdk.java.net/browse/JDK-8241439
>    webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8241439/webrev.01/


Yasumasa



On 2020/04/16 9:30, Yasumasa Suenaga wrote:
> PING: Could you review it?
> 
>    JBS: https://bugs.openjdk.java.net/browse/JDK-8241439
>    webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8241439/webrev.01/
> 
> 
> Yasumasa
> 
> 
> On 2020/04/09 16:00, Yasumasa Suenaga wrote:
>> Hi all,
>>
>> Please review this change:
>>
>>    JBS: https://bugs.openjdk.java.net/browse/JDK-8241439
>>    webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8241439/webrev.00/
>>
>> HotSpot has os::get_loaded_modules_info() to get all loaded native libraries, however it would call callback in twice on same library on Linux. Also it would call callback even if the file is not a library.
>>
>> We can see this problem in jdk.NativeLibrary JFR event as below:
>>
>>
>> ```
>> jdk.NativeLibrary {
>>     startTime = 16:59:06.621
>>     name = "/usr/lib64/libc-2.30.so"
>>     baseAddress = 0x7FDB06ACC000
>>     topAddress = 0x7FDB06AF1000
>> }
>>
>> jdk.NativeLibrary {
>>     startTime = 16:59:06.621
>>     name = "/usr/lib64/libc-2.30.so"
>>     baseAddress = 0x7FDB06AF1000
>>     topAddress = 0x7FDB06C40000
>> }
>>
>>      :
>>
>> ```
>>
>> ```
>> jdk.NativeLibrary {
>>     startTime = 16:59:06.621
>>     name = "/home/ysuenaga/OpenJDK/jdk/build/linux-x86_64-server-fastdebug/images/jdk/lib/server/classes.jsa"
>>     baseAddress = 0x800000000
>>     topAddress = 0x800007000
>> }
>> ```
>>
>> This change uses dl_iterate_phdr() to get them, so these problem has gone.
>>
>>
>> Thanks,
>>
>> Yasumasa


More information about the hotspot-jfr-dev mailing list