Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8333047

Remove arena-size-workaround in jvmtiUtils.cpp

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 23
    • 23
    • hotspot
    • b26

      In `JvmtiUtil::single_threaded_resource_area()`, we create a resource area that is supposed to work even if the current thread is not attached yet and therefore there is no associated Thread or the Thread has no valid ResourceArea.

      It contains a workaround:

      ```
          // lazily create the single threaded resource area
          // pick a size which is not a standard since the pools don't exist yet
          _single_threaded_resource_area = new (mtInternal) ResourceArea(Chunk::non_pool_size);
      ```

      It specifies a non-standard chunk size to circumvent the chunk-pool-based allocation in the RA constructor, ensuring that only malloc is used. This is because ChunkPools had been allocated from C-Heap, so there was a time window when no chunk pools were live yet.

      This is quirky and a bit ugly. It is also unnecessary since JDK-8272112 (since JDK 18). We now create chunk pools as global objects, so they are live as soon as the libjvm C++ initialization ran. We can remove this workaround and the comment.

            stuefe Thomas Stuefe
            stuefe Thomas Stuefe
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: