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

Ergonomics do not correctly calculate the maximum heap size to get zero based oops

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P4
    • Resolution: Not an Issue
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None

      Description

      Ergonomics calculation to get the maximum heap size to get zero based compressed oops is wrong.

      The current calculation is as follows:

      OopEncodingMax - HeapBaseMinAddress - align_up(vm_page_size, maximum conservative heap size)

      However in case of zero based oops, the space reserved due to HeapBaseMinAddress already contains the zero page, so actually the calculation should be

      OopEncodingMax - MAX2(HeapBaseMinAddress, align_up(vm_page_size, maximum conservative heap size))

      Further, when actually trying to reserve this maximum heap size for zero based oops, during quick checking it seems that most OSes fail to do so, always returning heap based compressed oops.
      Check whether this is an OS issue (i.e. the OS never allows zero heap based oops) or not.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                coleenp Coleen Phillimore
                Reporter:
                tschatzl Thomas Schatzl
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: