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

Test TestHugePageDecisionsAtVMStartup.java#LP_enabled fails when no free hugepage

XMLWordPrintable

    • b09

        The test runtime/os/TestHugePageDecisionsAtVMStartup.java#LP_enabled will fails when there is no free hugepases. The test log snippet show as below:

        STDOUT:
        useLP: true useTHP: false
        Command line: [/home/yansendao/git/jdk-ysd/build/linux-x86_64-server-release/images/jdk/bin/java -cp /home/yansendao/git/jdk-ysd/tmp/classes/runtime/os/TestHugePageDecisionsAtVMStartup_LP_enabled.d:/home/yansendao/git/jdk-ysd/test/hotspot/jtreg/runtime/os:/home/yansendao/git/jdk-ysd/tmp/classes/test/lib:/home/yansendao/git/jdk-ysd/test/lib:/home/yansendao/software/jdk/jtreg-7.5/lib/javatest.jar:/home/yansendao/software/jdk/jtreg-7.5/lib/jtreg.jar -XX:+UseLargePages -Xmx128m -Xlog:pagesize -version ]
        [2025-07-25T19:55:58.804826316Z] Gathering output for process 2850723
        [2025-07-25T19:55:58.816200790Z] Waiting for completion for process 2850723
        [2025-07-25T19:55:58.816336420Z] Waiting for completion finished for process 2850723
        configuration read from OS:Configuration{_explicitHugePageConfigurations=[ExplicitHugePageConfig{pageSize=2097152, nr_hugepages=2, nr_overcommit_hugepages=0}, ExplicitHugePageConfig{pageSize=1073741824, nr_hugepages=0, nr_overcommit_hugepages=0}], _explicitDefaultHugePageSize=2097152, _thpMode=madvise, _thpPageSize=2097152, _shmemThpMode=never}
        STDERR:
         stdout: [[0.001s][info][pagesize] Explicit hugepage support:
        [0.001s][info][pagesize] hugepage size: 2M
        [0.001s][info][pagesize] hugepage size: 1G
        [0.001s][info][pagesize] default hugepage size: 2M
        [0.001s][info][pagesize] Transparent hugepage (THP) support:
        [0.001s][info][pagesize] THP mode: madvise
        [0.001s][info][pagesize] THP pagesize: 2M
        [0.001s][info][pagesize] Shared memory transparent hugepage (THP) support:
        [0.001s][info][pagesize] Shared memory THP mode: never
        [0.001s][info][pagesize] Using the default large page size: 2M
        [0.001s][info][pagesize] Large page size (2M) failed sanity check, checking if smaller large page sizes are usable
        [0.001s][warning][pagesize] UseLargePages disabled, no large pages configured and available on the system.
        [0.001s][info ][pagesize] Large page support disabled.
        [0.002s][info ][pagesize] CodeHeap 'profiled nmethods': min=2496K max=118300K base=0x00007f3944518000 size=118300K page_size=4K
        [0.002s][info ][pagesize] CodeHeap 'non-nmethods': min=2496K max=9152K base=0x00007f394b89f000 size=9152K page_size=4K
        [0.002s][info ][pagesize] CodeHeap 'non-profiled nmethods': min=2496K max=118308K base=0x00007f394c18f000 size=118308K page_size=4K
        [0.003s][info ][pagesize] Heap: min=8M max=128M base=0x00000000f8000000 size=128M page_size=4K
        [0.003s][info ][pagesize] Block Offset Table: req_size=256K req_page_size=4K base=0x00007f396005b000 size=256K page_size=4K
        [0.003s][info ][pagesize] Card Table: req_size=256K req_page_size=4K base=0x00007f396001b000 size=256K page_size=4K
        [0.003s][info ][pagesize] Mark Bitmap: req_size=2M req_page_size=4K base=0x00007f393deb4000 size=2M page_size=4K
        ];
         stderr: [openjdk version "26-internal" 2026-03-17
        OpenJDK Runtime Environment (build 26-internal-67e93281)
        OpenJDK 64-Bit Server VM (build 26-internal-67e93281, mixed mode, sharing)
        ]
         exitValue = 0

         stdout: [[0.001s][info][pagesize] Explicit hugepage support:
        [0.001s][info][pagesize] hugepage size: 2M
        [0.001s][info][pagesize] hugepage size: 1G
        [0.001s][info][pagesize] default hugepage size: 2M
        [0.001s][info][pagesize] Transparent hugepage (THP) support:
        [0.001s][info][pagesize] THP mode: madvise
        [0.001s][info][pagesize] THP pagesize: 2M
        [0.001s][info][pagesize] Shared memory transparent hugepage (THP) support:
        [0.001s][info][pagesize] Shared memory THP mode: never
        [0.001s][info][pagesize] Using the default large page size: 2M
        [0.001s][info][pagesize] Large page size (2M) failed sanity check, checking if smaller large page sizes are usable
        [0.001s][warning][pagesize] UseLargePages disabled, no large pages configured and available on the system.
        [0.001s][info ][pagesize] Large page support disabled.
        [0.002s][info ][pagesize] CodeHeap 'profiled nmethods': min=2496K max=118300K base=0x00007f3944518000 size=118300K page_size=4K
        [0.002s][info ][pagesize] CodeHeap 'non-nmethods': min=2496K max=9152K base=0x00007f394b89f000 size=9152K page_size=4K
        [0.002s][info ][pagesize] CodeHeap 'non-profiled nmethods': min=2496K max=118308K base=0x00007f394c18f000 size=118308K page_size=4K
        [0.003s][info ][pagesize] Heap: min=8M max=128M base=0x00000000f8000000 size=128M page_size=4K
        [0.003s][info ][pagesize] Block Offset Table: req_size=256K req_page_size=4K base=0x00007f396005b000 size=256K page_size=4K
        [0.003s][info ][pagesize] Card Table: req_size=256K req_page_size=4K base=0x00007f396001b000 size=256K page_size=4K
        [0.003s][info ][pagesize] Mark Bitmap: req_size=2M req_page_size=4K base=0x00007f393deb4000 size=2M page_size=4K
        ];
         stderr: [openjdk version "26-internal" 2026-03-17
        OpenJDK Runtime Environment (build 26-internal-67e93281)
        OpenJDK 64-Bit Server VM (build 26-internal-67e93281, mixed mode, sharing)
        ]
         exitValue = 0

        java.lang.RuntimeException: '[info][pagesize] UseLargePages=1, UseTransparentHugePages=0' missing from stdout/stderr
                at jdk.test.lib.process.OutputAnalyzer.shouldContain(OutputAnalyzer.java:253)
                at TestHugePageDecisionsAtVMStartup.testOutput(TestHugePageDecisionsAtVMStartup.java:127)
                at TestHugePageDecisionsAtVMStartup.main(TestHugePageDecisionsAtVMStartup.java:158)

        System configure show that there is free hugepage:

        > cat /proc/meminfo | grep -i HugePages
        AnonHugePages: 0 kB
        ShmemHugePages: 0 kB
        FileHugePages: 0 kB
        HugePages_Total: 2
        HugePages_Free: 0
        HugePages_Rsvd: 0
        HugePages_Surp: 2
        Hugepagesize: 2048 kB

        > ( set -x ; cat /sys/kernel/mm/hugepages/hugepages-*/free_hugepages )
        + cat /sys/kernel/mm/hugepages/hugepages-1048576kB/free_hugepages /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages
        0
        0

              syan Sendao Yan
              syan Sendao Yan
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: