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

Parallel: Incorrect page size calculation with UseLargePages

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P4 P4
    • 25
    • 11, 17, 21, 24, 25
    • hotspot
    • gc

      In `ParallelArguments::initialize_heap_flags_and_sizes`, we use the following to calculate the value of the (large) page size to use:

      ```
        const size_t min_pages = 4; // 1 for eden + 1 for each survivor + 1 for old
        const size_t page_sz = os::page_size_for_region_aligned(MinHeapSize, min_pages);
      ```

      As we can see, the value of `MinHeapSize` (often derived ergonomically) is critical.

      JDK-8345323 is an example where an incorrect large page size is picked. Even after reverting to the original OldSize value in that change, the underlying problem of selecting an incorrect large page size still persists—either due to changes in MinHeapSize or the available large page sizes.

      For example: `-XX:+UseParallelGC -XX:+UseLargePages -XX:LargePageSizeInBytes=1g -XX:+UseNUMA -Xmx1g --version`. Here, `UseNUMA` is included to observe the effects of choosing an incorrect page size.

            Unassigned Unassigned
            ayang Albert Yang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: