Jigsaw Enhancement RFR round #3: 8159145 Add JVMTI function GetNamedModule
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Tue Jun 28 19:34:56 UTC 2016
On 6/28/16 10:24, Daniel D. Daugherty wrote:
> On 6/27/16 10:20 PM, serguei.spitsyn at oracle.com wrote:
>> On 6/27/16 21:08, serguei.spitsyn at oracle.com wrote:
>>> Please, review the Jigsaw fix for the enhancement:
>>> https://bugs.openjdk.java.net/browse/JDK-8159145
>>>
>>>
>>> The Hotspot webrev:
>>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2016/hotspot/8159145-jigsaw-jvmti-pkg.3/
>>>
>>>
>>>
>>> The Jdk webrev is the same:
>>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2016/hotspot/8159145-jigsaw-jvmti-pkg.jdk1/
>>>
>>
>> Sorry, the Jdk webrev changed as well:
>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2016/hotspot/8159145-jigsaw-jvmti-pkg.jdk3/
>> '
>
> src/java.base/share/native/include/jvmti.h
> No comments.
>
> Thumbs up on the 'jdk' repo change.
Thanks, Dan!
Serguei
>
> Dan
>
>
>
>
>>
>>
>> Thanks,
>> Serguei
>>
>>
>>>
>>>
>>> Summary:
>>>
>>> This is the review round #3.
>>> Alan suggested to replace the function GetModuleByPackageName with
>>> the GetNamedModule.
>>> New function will return NULL if the package is not in a module
>>> defined to the class loader.
>>> It simplifies the API and makes it easier to specify.
>>> JVM TI agents that instrument code in named modules need the Module
>>> at class load time.
>>>
>>> One question that came from the function semantics change.
>>> I had to implement the Modules::get_named_module() from scratch
>>> independently of the existing
>>> Modules::get_module_by_package_name() and Modules::get_module().
>>> The issue is that the Modules::get_module() can return the unnamed
>>> module whereas the
>>> JVMTI helper Modules::get_named_module() should return NULL
>>> instead of the unnamed module.
>>> Please, let me know if it is Ok or if you have better ideas how to
>>> share the code.
>>>
>>> This is the Summary from review round #1:
>>>
>>> One way to do this is by introducing a new ClassFileLoadHook that
>>> takes an additional parameter but this approach is disruptive.
>>> The alternative option is a JVM TI function that maps a
>>> classloader + package name to a module.
>>> We were initially not confident with this approach so we
>>> introduced it as JVM function JVM_GetModuleByPackageName.
>>> Based on experience to date then this approach seems okay and so
>>> this function needs to be promoted to a JVMTI function.
>>>
>>> It includes new jtreg test with native JVMTI agent.
>>>
>>>
>>> Testing:
>>> Run newly developed jtreg test.
>>>
>>> Thanks,
>>> Serguei
>>
>
More information about the serviceability-dev
mailing list