RFR: 8272807: Permit use of memory concurrent with pretouch

Kim Barrett kbarrett at openjdk.java.net
Fri Feb 4 12:25:10 UTC 2022


On Fri, 4 Feb 2022 11:05:07 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> [Trying again, after a couple previous proposals.]
>> 
>> Please review this change to os::pretouch_memory to permit use of the memory
>> being pretouched concurrently with the pretouch operation.  This will allow
>> future changes that can make use of such overlap.
>> 
>> Testing:
>> mach5 tier1-3 with -XX:+AlwaysPreTouch.
>> 
>> Verified no performance impact by comparing startup times with Epsilon GC and
>> -XX:+AlwaysPretouch on a large enough heap that the pretouch takes a
>> significant amount of time.  Tested on both linux-x64 and linux-aarch64.
>> 
>> None of these test concurrent use; that will wait for future changes that use
>> the new feature.
>
> src/hotspot/share/runtime/os.cpp line 1758:
> 
>> 1756: void os::pretouch_memory(void* start, void* end, size_t page_size) {
>> 1757:   assert(is_power_of_2(page_size), "page size misaligned: %zu", page_size);
>> 1758:   assert(page_size >= sizeof(int), "page size too small: %zu", page_size);
> 
> `SIZE_FORMAT` instead of `%zu`.

`%zu` is C99 Standard, so also available in C++14.  It's also long been supported by gcc in C++03 mode, and by at least VS2015 and later. See https://bugs.openjdk.java.net/browse/JDK-8256379.  There's been no effort to go back and change existing code, but it's been getting used in new code for a while.

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

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


More information about the hotspot-runtime-dev mailing list