[jigsaw] Rules for modules added by the JVM
ioi.lam at oracle.com
ioi.lam at oracle.com
Fri Dec 13 05:52:28 UTC 2024
I have some questions regarding an RFE that I filed about adding some
modules
when CDS is enabled [1].
From https://openjdk.org/jeps/261
It is occasionally necessary to add modules to the default root set
in order to ensure that specific platform, library, or service-provider
modules will be present in the resulting module graph. In any phase
the option
--add-modules <module>(,<module>)*
where <module> is a module name, adds the indicated modules to the
default
set of root modules.
I am not sure if this language governs the current behavior of HotSpot,
where
modules are added when certain JVM flags are specified. For example, when
-XX:+StartFlightRecording is specified, the jdk.jfr module is added [2]
if (status && (FlightRecorderOptions || StartFlightRecording)) {
if (!create_numbered_module_property("jdk.module.addmods",
"jdk.jfr", _addmods_count++)) {
return false;
}
}
What are the rules for the JVM to decide whether it can add a certain module
or not?
For a compatibility/behavioral perspective, it seems that in the case of
JFR, the
decision by the JVM to add "jdk.jfr" hasn't been a problem. Otherwise it
would
be pretty surprising to see application starting failing once JFR is used.
As far as I can guess, the reasons against adding unneeded modules are:
- start up performance: time spent to load the information for the extra
modules
- runtime memory footprint
- unnecessary exposure of the APIs (apps could latch onto APIs exposed
by JFR, and
will break when jdk.jfr is changed or removed in the future)
What other reasons are there?
[1] https://bugs.openjdk.org/browse/JDK-8345969
[2]
https://github.com/openjdk/jdk/blob/09c29d1d4274d9c36e1af98f02e6fc5b3f35133f/src/hotspot/share/runtime/arguments.cpp#L1807-L1810
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jigsaw-dev/attachments/20241212/3f3d5306/attachment.htm>
More information about the jigsaw-dev
mailing list