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

Stefan Johansson sjohanss at openjdk.java.net
Mon Jan 18 13:17:52 UTC 2021


On Mon, 18 Jan 2021 12:17:26 GMT, Ivan Walulya <iwalulya at openjdk.org> wrote:

>> src/hotspot/os/linux/os_linux.cpp line 3746:
>> 
>>> 3744:       if (page_size * K > (size_t)Linux::page_size()) {
>>> 3745:           // Add each found Large Page Size to _page_sizes
>>> 3746:           _page_sizes.add(page_size * K);
>> 
>> Just realized one more thing, with this code we will enable all page sizes configured even if there are no pages "allocated" for the given size. 
>> 
>> Is that what we want or should we read the file nr_hugepages in the given director and only add it if the size is > 0?
>
> I think a more complete solution is to check the nr_hugepages. Additionally, this will be required by the solution you propose above that would consider "largest possible page size with enough pages free".

I think so too. The "largest possible page size..." could be solved anyway, by just retrying all configured pages sizes until we find one that works. But it would be much more efficient to just try the page size that actually could work.

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

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



More information about the hotspot-gc-dev mailing list