RFR: 8255237: ZGC: Bulk free garbage pages during relocation set selection

Per Liden pliden at openjdk.java.net
Thu Oct 22 14:25:27 UTC 2020


During relocation set selection, we immediately free garbage (empty) pages. On very large heap, which has a very high number of garbage pages we can make a significant number of calls to free pages, which prolongs the "Concurrent Select Relocation Set" phase. Freeing a page involves grabbing a lock, inserting the page into the page cache, and then try to satisfy any stalled allocation. By freeing empty pages in bulk, we can amortize the some of the cost of freeing a page and speed up this phase. With this patch we free (up to) 64 pages in bulk.

This PR depends on "8255234: ZGC: Bulk allocate forwarding data structures" and "8255235: ZGC: Allocate and initialize forwarding data structures in parallel", which are separate PRs (#804 and #805).

This patch was joint work with Albert (ayang).

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

Commit messages:
 - 8255237: ZGC: Bulk free garbage pages during relocation set selection
 - 8255235: ZGC: Allocate and initialize forwarding data structures in parallel
 - 8255234: ZGC: Bulk allocate forwarding data structures

Changes: https://git.openjdk.java.net/jdk/pull/806/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=806&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8255237
  Stats: 667 lines in 24 files changed: 446 ins; 153 del; 68 mod
  Patch: https://git.openjdk.java.net/jdk/pull/806.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/806/head:pull/806

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



More information about the hotspot-gc-dev mailing list