RFR: JDK-8257588: Make os::_page_sizes a set

Thomas Stuefe stuefe at openjdk.java.net
Wed Dec 2 10:54:03 UTC 2020


Hi,

may I please have reviews for the following very small improvement:

While discussing JDK-8243315 [1], and aiming to make planned changes like JDK-8256155 [2] easier:

size_t os::_page_sizes[os::page_sizes_max];

is an array used to keep all page sizes the hotspot can use. It is sorted by size and filled in at initialization time.

Coding dealing with this can be simplified by making this a set (which is very easy since all page sizes are power-2-values so they lend themselves nicely to a bitmap).

That has the following advantages:
- makes adding new sizes simple since we do not have to re-sort the array. Coding is easier to read too.
- it makes it possible to encode a set of page sizes in one number, so we can hand a set-of-page-sizes around as a value.

-----

The patch adds a new class, os::PagesizeSet, which is a bitmap containing page sizes. It adds gtests for this class. It replaces the old os::_page_sizes with an object of that class. It also removes an unused function.


Testing:
- nightlies at SAP
- manual tests with UseLargePages
- the new gtests
- gh actions (with x86 still failing because of unrelated issues)

Thank you,

Thomas

[1] https://bugs.openjdk.java.net/browse/JDK-8243315
[2] https://bugs.openjdk.java.net/browse/JDK-8256155

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

Commit messages:
 - Add PagesizeSet

Changes: https://git.openjdk.java.net/jdk/pull/1522/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1522&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257588
  Stats: 227 lines in 7 files changed: 174 ins; 30 del; 23 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1522.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1522/head:pull/1522

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


More information about the hotspot-dev mailing list