-
Enhancement
-
Resolution: Fixed
-
P4
-
None
-
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
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
- links to
-
Commit(master) openjdk/jdk/3b0da298
-
Review(master) openjdk/jdk25u/44
-
Review(master) openjdk/jdk/26480