JEP 365: ZGC on Windows (Experimental)

OwnerStefan Karlsson
TypeFeature
ScopeImplementation
StatusClosed / Delivered
Release14
Componenthotspot / gc
Discussionhotspot dash gc dash dev at openjdk dot java dot net
EffortS
DurationS
DependsJEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
Relates toJEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production)
Reviewed byMikael Vidstedt, Per Liden
Endorsed byMikael Vidstedt
Created2019/10/16 11:00
Updated2021/08/28 00:16
Issue8232364

Summary

Port the ZGC garbage collector to Windows.

Non-Goals

It is not a goal to support Windows 10 and Windows Server older than version 1803, since older versions lack the required API for placeholder memory reservations.

Description

Most of the ZGC code base is platform independent and requires no Windows-specific changes. The existing load barrier support for x64 is operating-system agnostic and can also be used on Windows. The platform specific code that needs to be ported relates to how address space is reserved and how physical memory is mapped into a reserved address space. The Windows API for memory management differs from the POSIX API and is less flexible in some ways.

The Windows implementation of ZGC requires the following work:

Testing

The tests that usually run for ZGC on Linux will be run for Windows too.

Dependencies

The following changes to shared code are prerequisites: