< prev index next >

src/hotspot/share/cds/metaspaceShared.cpp

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
+  * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

@@ -65,10 +65,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"

@@ -106,11 +108,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
+ // [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.

@@ -723,11 +725,11 @@
                   buf_size - classlist_path_len,
                   "%sclasslist", os::file_separator());
    }
  }
  
- void MetaspaceShared::preload_classes(TRAPS) {
+ 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) {

@@ -760,11 +762,11 @@
    log_info(cds)("Loading classes to share: done.");
    log_info(cds)("Shared spaces: preloaded %d classes", class_count);
  }
  
  void MetaspaceShared::preload_and_dump_impl(TRAPS) {
-   preload_classes(CHECK);
+   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.");

@@ -836,10 +838,14 @@
    }
  }
  
  #if INCLUDE_CDS_JAVA_HEAP
  void VM_PopulateDumpSharedSpace::dump_java_heap_objects(GrowableArray<Klass*>* klasses) {
+   if (CDSConfig::is_valhalla_preview()) {
+     log_info(cds)("Archived java heap is not yet supported with Valhalla preview");
+     return;
+   }
    if(!HeapShared::can_write()) {
      log_info(cds)(
        "Archived java heap is not supported as UseG1GC "
        "and UseCompressedClassPointers are required."
        "Current settings: UseG1GC=%s, UseCompressedClassPointers=%s.",
< prev index next >