RFR: JDK-8256155: os::Linux Populate all large_page_sizes, select smallest page size in reserve_memory_special_huge_tlbfs* [v10]

Marcus G K Williams github.com+168222+mgkwill at openjdk.java.net
Tue Dec 8 18:03:24 UTC 2020


> When using LargePageSizeInBytes=1G, os::Linux::reserve_memory_special_huge_tlbfs* cannot select large pages smaller than 1G. Code heap usually uses less than 1G, so currently the code precludes code heap from using
> Large pages in this circumstance and when os::Linux::reserve_memory_special_huge_tlbfs* is called page sizes fall back to Linux::page_size() (usually 4k).
> 
> This change allows the above use case by populating all large_page_sizes present in /sys/kernel/mm/hugepages in _page_sizes upon calling os::Linux::setup_large_page_size().
> 
> In os::Linux::reserve_memory_special_huge_tlbfs* we then select the largest large page size available in _page_sizes that is smaller than bytes being reserved.

Marcus G K Williams has updated the pull request incrementally with one additional commit since the last revision:

  Ivan W. Requested Changes
  
  Removed os::Linux::select_large_page_size and
  use os::page_size_for_region instead
  
  Removed Linux::find_large_page_size and use
  register_large_page_sizes. Streamlined
  Linux::setup_large_page_size
  
  Signed-off-by: Marcus G K Williams <marcus.williams at intel.com>

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1153/files
  - new: https://git.openjdk.java.net/jdk/pull/1153/files/870e8a54..0bfc0cbb

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1153&range=09
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1153&range=08-09

  Stats: 72 lines in 2 files changed: 12 ins; 51 del; 9 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1153.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1153/head:pull/1153

PR: https://git.openjdk.java.net/jdk/pull/1153


More information about the hotspot-dev mailing list