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: