On Thu, 13 Feb 2025 03:55:50 GMT, Ashutosh Mehra <asme...@openjdk.org> wrote:
>> Calvin Cheung has updated the pull request incrementally with one additional >> commit since the last revision: >> >> @iklam and @ashu-mehra comment > > src/hotspot/share/cds/aotCodeSource.cpp line 762: > >> 760: } >> 761: >> 762: if (is_boot_classpath && runtime_css.has_next() && >> (need_to_check_app_classpath() || num_module_paths() > 0)) { > > I am not sure I get what this block is for. Is it for the case where runtime > boot cp has more entries than the dumptime boot cp, and it is checking if the > extra entries really exist or they are just empty? If so, then > `check_paths_existence` should only be checking the extra entries in the boot > cp, not all of them. > > Can you please explain this and probably add a comment as well to describe > what this block is for. I added some comment: // Check if the runtime boot classpath has more entries than the one stored in the archive and if the app classpath // or the module path requires validation. if (is_boot_classpath && runtime_css.has_next() && (need_to_check_app_classpath() || num_module_paths() > 0)) { // the check passes if all the extra runtime boot classpath entries are non-existent if (check_paths_existence(runtime_css)) { log_warning(cds)("boot classpath is longer than expected"); return false; } } Also fixed the `check_paths_existence()` method so it only checks the extra entries. > src/hotspot/share/cds/aotCodeSource.cpp line 894: > >> 892: // matched exactly. >> 893: bool AOTCodeSourceConfig::need_lcp_match(AllCodeSourceStreams& all_css) >> const { >> 894: if (!need_lcp_match_helper(boot_start(), boot_end(), >> all_css.boot_cp()) || > > Can we reverse these conditions to make it easier to read? > > > if (need_lcp_match_helper(boot_start(), boot_end(), all_css.boot_cp()) && > need_lcp_match_helper(app_start(), app_end(), all_css.app_cp())) { > return true; > } else { > return false; > } Done. > src/hotspot/share/cds/aotCodeSource.cpp line 903: > >> 901: >> 902: bool AOTCodeSourceConfig::need_lcp_match_helper(int start, int end, >> CodeSourceStream& css) const { >> 903: if (app_end() == boot_start()) { > > I feel this block belongs to the caller `need_lcp_match`. Fixed. > src/hotspot/share/cds/aotCodeSource.hpp line 213: > >> 211: >> 212: // Common accessors >> 213: int boot_start() const { return 1; } > > Can we rename these methods to something like boot_start() -> > boot_cp_start_index(). > At the call site it makes it clear it is referring to the bootclasspath > index, and not booting something :) I renamed them as follows: // Common accessors int boot_cp_start_index() const { return 1; } int boot_cp_end_index() const { return _boot_classpath_end; } int app_cp_start_index() const { return boot_cp_end_index(); } int app_cp_end_index() const { return _app_classpath_end; } int module_path_start_index() const { return app_cp_end_index(); } int module_path_end_index() const { return _module_end; } > src/hotspot/share/cds/aotCodeSource.hpp line 234: > >> 232: // Functions used only during dumptime >> 233: static void dumptime_init(TRAPS); >> 234: static size_t estimate_size_for_archive() { > > This method doesn't seem to be in use. Can this be removed? Removed. I also removed the `estimate_size_for_archive_helper()` method. > src/hotspot/share/cds/filemap.cpp line 318: > >> 316: if (header()->has_full_module_graph() && has_extra_module_paths) { >> 317: CDSConfig::stop_using_optimized_module_handling(); >> 318: log_info(cds)("optimized module handling: disabled because of extra >> module path(s) are specified"); > > typo: "disabled because ~of~ extra module path(s) are specified" Fixed. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23476#discussion_r1956614255 PR Review Comment: https://git.openjdk.org/jdk/pull/23476#discussion_r1956614149 PR Review Comment: https://git.openjdk.org/jdk/pull/23476#discussion_r1956614064 PR Review Comment: https://git.openjdk.org/jdk/pull/23476#discussion_r1956613894 PR Review Comment: https://git.openjdk.org/jdk/pull/23476#discussion_r1956613789 PR Review Comment: https://git.openjdk.org/jdk/pull/23476#discussion_r1956614357