Wither transparent huge pages for the heap?
Peter Kessler OS
peter.kessler at os.amperecomputing.com
Mon Nov 3 20:55:41 UTC 2025
Between JDK-24 (24.0.2+12-54, dba 24.0.2) and JDK-25 (25.0.1+8-27, dba 25.0.1), running an application on a machine with 64KiB system page size and 512MiB transparent huge pages, I see this difference:
$ "${OPENJDK_DIR}"/jdk-24.0.2/bin/java -showversion -XX:+UseTransparentHugePages -Xmx12g -Xms12g -Xlog:pagesize=info HelloWorld
[0.001s][info][pagesize] Explicit hugepage support:
[0.001s][info][pagesize] hugepage size: 2M
[0.001s][info][pagesize] hugepage size: 512M
[0.001s][info][pagesize] hugepage size: 16G
[0.001s][info][pagesize] default hugepage size: 512M
[0.001s][info][pagesize] Transparent hugepage (THP) support:
[0.001s][info][pagesize] THP mode: always
[0.001s][info][pagesize] THP pagesize: 512M
[0.001s][info][pagesize] Shared memory transparent hugepage (THP) support:
[0.001s][info][pagesize] Shared memory THP mode: never
[0.001s][info][pagesize] JVM will attempt to prevent THPs in thread stacks.
[0.001s][info][pagesize] UseLargePages=1, UseTransparentHugePages=1
[0.001s][info][pagesize] Large page support enabled. Usable page sizes: 64k, 512M. Default large page size: 512M.
[0.002s][info][pagesize] CodeHeap 'profiled nmethods': min=2496K max=118272K base=0x00004000108d0000 size=118272K page_size=64K
[0.002s][info][pagesize] CodeHeap 'non-nmethods': min=2496K max=9152K base=0x0000400017c50000 size=9152K page_size=64K
[0.002s][info][pagesize] CodeHeap 'non-profiled nmethods': min=2496K max=118336K base=0x0000400018540000 size=118336K page_size=64K
[0.003s][info][pagesize] Heap: min=12G max=12G base=0x0000000500000000 size=12G page_size=512M
[0.003s][info][pagesize] Block Offset Table: req_size=24M req_page_size=64K base=0x0000400024440000 size=24M page_size=64K
[0.003s][info][pagesize] Card Table: req_size=24M req_page_size=64K base=0x0000400025c40000 size=24M page_size=64K
[0.003s][info][pagesize] Mark Bitmap: req_size=192M req_page_size=64K base=0x0000400027440000 size=192M page_size=64K
openjdk version "24.0.2" 2025-07-15
OpenJDK Runtime Environment (build 24.0.2+12-54)
OpenJDK 64-Bit Server VM (build 24.0.2+12-54, mixed mode, sharing)
Hello world!
versus
$ "${OPENJDK_DIR}"/jdk-25.0.1/bin/java -showversion -XX:+UseTransparentHugePages -Xmx12g -Xms12g -Xlog:pagesize=info HelloWorld
[0.001s][info][pagesize] Explicit hugepage support:
[0.001s][info][pagesize] hugepage size: 2M
[0.001s][info][pagesize] hugepage size: 512M
[0.001s][info][pagesize] hugepage size: 16G
[0.001s][info][pagesize] default hugepage size: 512M
[0.001s][info][pagesize] Transparent hugepage (THP) support:
[0.001s][info][pagesize] THP mode: always
[0.001s][info][pagesize] THP pagesize: 512M
[0.001s][info][pagesize] Shared memory transparent hugepage (THP) support:
[0.001s][info][pagesize] Shared memory THP mode: never
[0.001s][info][pagesize] JVM will attempt to prevent THPs in thread stacks.
[0.001s][info][pagesize] UseLargePages=1, UseTransparentHugePages=1
[0.001s][info][pagesize] Large page support enabled. Usable page sizes: 64k, 512M. Default large page size: 512M.
[0.002s][info][pagesize] CodeHeap 'profiled nmethods': min=2496K max=118272K base=0x00004000108d0000 size=118272K page_size=64K
[0.002s][info][pagesize] CodeHeap 'non-nmethods': min=2496K max=9152K base=0x0000400017c50000 size=9152K page_size=64K
[0.002s][info][pagesize] CodeHeap 'non-profiled nmethods': min=2496K max=118336K base=0x0000400018540000 size=118336K page_size=64K
[0.003s][info][pagesize] Heap: min=12G max=12G base=0x0000000500000000 size=12G page_size=64K
[0.003s][info][pagesize] Block Offset Table: req_size=24M req_page_size=64K base=0x0000400024550000 size=24M page_size=64K
[0.003s][info][pagesize] Card Table: req_size=24M req_page_size=64K base=0x0000400025d50000 size=24M page_size=64K
[0.003s][info][pagesize] Mark Bitmap: req_size=192M req_page_size=64K base=0x0000400027550000 size=192M page_size=64K
openjdk version "25.0.1" 2025-10-21
OpenJDK Runtime Environment (build 25.0.1+8-27)
OpenJDK 64-Bit Server VM (build 25.0.1+8-27, mixed mode, sharing)
Hello world!
Why am I not getting 512MiB pages for my heap in JDK-25, when I was getting 512MiB pages for my heap in JDK-24? Maybe more to the point: How do I get transparent huge pages for my heap in JDK-25?
... peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-use/attachments/20251103/5cd7a32b/attachment-0001.htm>
More information about the hotspot-gc-use
mailing list