Integrated: 8364518: Support for Job Objects in os::commit_memory_limit() on Windows

Joel Sikström jsikstro at openjdk.org
Wed Aug 6 07:58:10 UTC 2025


On Fri, 1 Aug 2025 10:38:32 GMT, Joel Sikström <jsikstro at openjdk.org> wrote:

> Hello,
> 
> We currently use os::commit_memory_limit() to limit the initial, min and max values when ergonomically setting the heap size. Right now, os::commit_memory_limit() returns the available virtual address space on Windows, which is guaranteed to be the upper-bound of how much memory can be committed. However, this does not take into account user-configurable limits.
> 
> I propose revising os::commit_memory_limit() to consider Windows Job Objects. Job Objects can, among other things, restrict the amount of memory that can be committed by a single process or all processes in a job. If we are unable to query Job Object information or if no limit is set, I suggest returning SIZE_MAX, since the next effective limit is the available virtual address space. The size of this virtual address space cannot be modified by the user, except by consuming it. 
> 
> For more details and short examples, I have created a GitHub repository summarizing my findings regarding memory limits and Job Objects on Windows: [https://github.com/jsikstro/MemoryLimitsWindows ](https://github.com/jsikstro/MemoryLimitsWindows).
> 
> Adding support for Job Objects in this way adds support for detecting memory limits when using native Windows Hyper-V containers, which uses Job Objects to limit memory.
> 
> Testing:
> * Oracle's tier1-2
> * Manual testing on Windows using both [Process Governor](https://github.com/lowleveldesign/process-governor) (a popular tool), and creating a Job Object manually.

This pull request has now been integrated.

Changeset: 8d529bc4
Author:    Joel Sikström <jsikstro at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/8d529bc4f361407b0b5c3ac1e62c3be0f0b8d71c
Stats:     22 lines in 1 file changed: 18 ins; 0 del; 4 mod

8364518: Support for Job Objects in os::commit_memory_limit() on Windows

Reviewed-by: ayang, dholmes

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

PR: https://git.openjdk.org/jdk/pull/26593


More information about the hotspot-gc-dev mailing list