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

VirtualSpace does not use large pages

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b49

      Backports

        Description

        In 'VirtualSpace::initialize' we use 'os::page_size_for_region' to determine the max_commit_granularity of the VirtualSpace. As a result we do not use large pages if the overall size is not large page aligned. However, we could still use large pages in the middle region by setting the size of the lower and upper region accordingly. For example, if we have a size of 241 MB we do not use large pages (4 MB)

        Steps to reproduce on Solaris Sparc T4:

        java -XX:+PrintCodeCache -XX:-SegmentedCodeCache Loop

        CodeCache: size=245760Kb used=3470Kb max_used=3479Kb free=242289Kb
         bounds [0xffffffff69000000, 0xffffffff69370000, 0xffffffff78000000]
         total_blobs=316 nmethods=76 adapters=154
         compilation: enabled

        pmap -s [PID]

        FFFFFFFF69000000 4096K 4M rwx-- [ anon ]

        As we can see, large pages (4M) are used here. Now with a non large page aligned code cache size (241M):

        java -XX:+PrintCodeCache -XX:ReservedCodeCacheSize=241M -XX:-SegmentedCodeCache Loop

        CodeCache: size=246784Kb used=3467Kb max_used=3474Kb free=243316Kb
         bounds [0xffffffff68c00000, 0xffffffff68f70000, 0xffffffff77d00000]
         total_blobs=315 nmethods=75 adapters=154
         compilation: enabled

        pmap -s [PID]

        FFFFFFFF68C00000 448K 64K rwx-- [ anon ]
        FFFFFFFF68C70000 448K - rwx-- [ anon ]
        FFFFFFFF68CE0000 128K 64K rwx-- [ anon ]
        FFFFFFFF68D00000 448K - rwx-- [ anon ]
        FFFFFFFF68D70000 128K 64K rwx-- [ anon ]
        FFFFFFFF68D90000 448K - rwx-- [ anon ]
        FFFFFFFF68E00000 64K 64K rwx-- [ anon ]
        FFFFFFFF68E10000 448K - rwx-- [ anon ]
        FFFFFFFF68E80000 192K 64K rwx-- [ anon ]
        FFFFFFFF68EB0000 384K - rwx-- [ anon ]
        FFFFFFFF68F10000 384K 64K rwx-- [ anon ]

        Instead of large pages we use 64K pages.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  ehelin Erik Helin
                  Reporter:
                  thartmann Tobias Hartmann
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: