< prev index next >

src/hotspot/share/cds/metaspaceShared.cpp

Print this page
*** 69,10 ***
--- 69,12 ---
  #include "memory/metaspaceClosure.hpp"
  #include "memory/resourceArea.hpp"
  #include "memory/universe.hpp"
  #include "nmt/memTracker.hpp"
  #include "oops/compressedKlass.hpp"
+ #include "oops/flatArrayKlass.hpp"
+ #include "oops/inlineKlass.hpp"
  #include "oops/instanceMirrorKlass.hpp"
  #include "oops/klass.inline.hpp"
  #include "oops/objArrayOop.hpp"
  #include "oops/oop.inline.hpp"
  #include "oops/oopHandle.hpp"

*** 113,11 ***
  //
  // The rw and ro regions are linearly allocated, in the order of rw->ro.
  // These regions are aligned with MetaspaceShared::core_region_alignment().
  //
  // These 2 regions are populated in the following steps:
! // [0] All classes are loaded in MetaspaceShared::preload_classes(). All metadata are
  //     temporarily allocated outside of the shared regions.
  // [1] We enter a safepoint and allocate a buffer for the rw/ro regions.
  // [2] C++ vtables are copied into the rw region.
  // [3] ArchiveBuilder copies RW metadata into the rw region.
  // [4] ArchiveBuilder copies RO metadata into the ro region.
--- 115,11 ---
  //
  // The rw and ro regions are linearly allocated, in the order of rw->ro.
  // These regions are aligned with MetaspaceShared::core_region_alignment().
  //
  // These 2 regions are populated in the following steps:
! // [0] All classes are loaded in MetaspaceShared::loadable_descriptors(). All metadata are
  //     temporarily allocated outside of the shared regions.
  // [1] We enter a safepoint and allocate a buffer for the rw/ro regions.
  // [2] C++ vtables are copied into the rw region.
  // [3] ArchiveBuilder copies RW metadata into the rw region.
  // [4] ArchiveBuilder copies RO metadata into the ro region.

*** 885,11 ***
                   buf_size - classlist_path_len,
                   "%sclasslist", os::file_separator());
    }
  }
  
! void MetaspaceShared::preload_classes(TRAPS) {
    char default_classlist[JVM_MAXPATHLEN];
    const char* classlist_path;
  
    get_default_classlist(default_classlist, sizeof(default_classlist));
    if (SharedClassListFile == nullptr) {
--- 887,11 ---
                   buf_size - classlist_path_len,
                   "%sclasslist", os::file_separator());
    }
  }
  
! void MetaspaceShared::loadable_descriptors(TRAPS) {
    char default_classlist[JVM_MAXPATHLEN];
    const char* classlist_path;
  
    get_default_classlist(default_classlist, sizeof(default_classlist));
    if (SharedClassListFile == nullptr) {

*** 932,11 ***
  }
  
  void MetaspaceShared::preload_and_dump_impl(StaticArchiveBuilder& builder, TRAPS) {
    if (CDSConfig::is_dumping_classic_static_archive()) {
      // We are running with -Xshare:dump
!     preload_classes(CHECK);
  
      if (SharedArchiveConfigFile) {
        log_info(cds)("Reading extra data from %s ...", SharedArchiveConfigFile);
        read_extra_data(THREAD, SharedArchiveConfigFile);
        log_info(cds)("Reading extra data: done.");
--- 934,11 ---
  }
  
  void MetaspaceShared::preload_and_dump_impl(StaticArchiveBuilder& builder, TRAPS) {
    if (CDSConfig::is_dumping_classic_static_archive()) {
      // We are running with -Xshare:dump
!     loadable_descriptors(CHECK);
  
      if (SharedArchiveConfigFile) {
        log_info(cds)("Reading extra data from %s ...", SharedArchiveConfigFile);
        read_extra_data(THREAD, SharedArchiveConfigFile);
        log_info(cds)("Reading extra data: done.");

*** 1087,10 ***
--- 1089,15 ---
      return false;
    }
  }
  
  void VM_PopulateDumpSharedSpace::dump_java_heap_objects() {
+   if (CDSConfig::is_valhalla_preview()) {
+     log_info(cds)("Archived java heap is not yet supported with Valhalla preview");
+     return;
+   }
+ 
    if (CDSConfig::is_dumping_heap()) {
      HeapShared::write_heap(&_heap_info);
    } else {
      CDSConfig::log_reasons_for_not_dumping_heap();
    }
< prev index next >