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-runtime-dev
mailing list