-
Bug
-
Resolution: Fixed
-
P3
-
19, 20
-
b29
-
linux
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8299249 | 21 | Nick Gasson | P3 | Resolved | Fixed | b04 |
I noticed this when implementing JDK-8298482. If UseAdaptiveSizePolicy and/or UseAdaptiveNUMAChunkSizing are enabled and UseLargePages is *not* enabled, part of the eden spaces managed by MutableNUMASpace end up bound to the wrong node. This seems to be a regression caused by JDK-8283935, specifically the addition of
set_page_size(alignment());
to MutableNUMASpace::initialize(). Previously the page size would have been equal to os::vm_page_size() unless UseLargePages was enabled.
In bias_region() we call os::free_memory() to uncommit a range of pages so that they can be later allocated on a different node. We pass page_size() as the alignment_hint argument. However on Linux this does nothing if alignment_hint is greater than os::vm_page_size() and THP is not enabled, so the pages always remain bound to their original node (see os::pd_free_memory() in os_linux.cpp).
I think the solution here is to pass os::vm_page_size() as the alignment_hint when UseLargePages is disabled.
set_page_size(alignment());
to MutableNUMASpace::initialize(). Previously the page size would have been equal to os::vm_page_size() unless UseLargePages was enabled.
In bias_region() we call os::free_memory() to uncommit a range of pages so that they can be later allocated on a different node. We pass page_size() as the alignment_hint argument. However on Linux this does nothing if alignment_hint is greater than os::vm_page_size() and THP is not enabled, so the pages always remain bound to their original node (see os::pd_free_memory() in os_linux.cpp).
I think the solution here is to pass os::vm_page_size() as the alignment_hint when UseLargePages is disabled.
- backported by
-
JDK-8299249 ParallelGC -XX:+UseNUMA eden spaces allocated on wrong node
-
- Resolved
-
- relates to
-
JDK-8283935 Parallel: Crash during pretouch after large pages allocation failure
-
- Resolved
-