RFR: 8255237: ZGC: Bulk free garbage pages during relocation set selection [v3]
Per Liden
pliden at openjdk.java.net
Wed Oct 28 10:45:25 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).
Per Liden has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 11 commits:
- Merge branch '8255235_bulk_alloc_parallel' into 8255237_free_garbage_pages
- Merge master
- Add assert
- Merge
- Assert that all allocated memory is used
- Merge
- Assert that allocations never fail
- Add comment
- 8255237: ZGC: Bulk free garbage pages during relocation set selection
- 8255235: ZGC: Allocate and initialize forwarding data structures in parallel
- ... and 1 more: https://git.openjdk.java.net/jdk/compare/2c9dfc73...91cfa738
-------------
Changes: https://git.openjdk.java.net/jdk/pull/806/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=806&range=02
Stats: 417 lines in 14 files changed: 220 ins; 133 del; 64 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