[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Integrated: 8296875: Generational ZGC: Refactor loom code
From: Erik =?UTF-8?B?w5ZzdGVybHVuZA==?= <eosterlund () openjdk ! org>
Date: 2022-11-30 14:11:39
Message-ID: ZHQINSjaFkRifJEDKOUsvwded-ARaX1nYFakhgoKj7M=.7f61aa67-a0c0-4979-a9ec-cc6a45177879 () github ! com
[Download RAW message or body]
On Fri, 11 Nov 2022 16:16:18 GMT, Erik Ă–sterlund <eosterlund@openjdk.org> wrote:
> The current loom code makes some assumptions about GC that will not work with \
> generational ZGC. We should make this code more GC agnostic, and provide a better \
> interface for talking to the GC.
> In particular,
> 1) All GCs have a way of encoding oops inside of the heap differently to oops \
> outside of the heap. For non-ZGC collectors, that is compressed oops. For ZGC, that \
> is colored pointers. With generational ZGC, pointers on-heap will be colored and \
> pointers off-heap will be "colorless". So we need to generalize encoding and \
> decoding of oops in the heap, for loom.
> 2) The cont_oop is located on a stack. In order to access it we need to \
> start_processing on that thread, if it isn't the current thread. This happened to \
> work so far for ZGC, because the stale pointers had enough colors. But with \
> generational ZGC, these on-stack oops will be colorless, so we have to be more \
> accurate here and ensure processing really has started on any thread that cont_oop \
> is used on. To make life a bit easier, I'm moving the oop processing responsibility \
> for these oops to the thread instead. Currently there is no more than one of these, \
> so doing it lazily per frame seems a bit overkill.
> 3) Refactoring the stack chunk allocation code
>
> Tested with tier1-5 and manually running Skynet. No regressions detected. We have \
> also been running with this (yet a slightly different backend) in the generational \
> ZGC repo for a while now.
This pull request has now been integrated.
Changeset: be99e84c
Author: Erik Ă–sterlund <eosterlund@openjdk.org>
URL: https://git.openjdk.org/jdk/commit/be99e84c98786ff9c2c9ca1a979dc17ba810ae09
Stats: 978 lines in 42 files changed: 641 ins; 228 del; 109 mod
8296875: Generational ZGC: Refactor loom code
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Co-authored-by: Axel Boldt-Christmas <aboldtch@openjdk.org>
Reviewed-by: stefank, rrich, pchilanomate
-------------
PR: https://git.openjdk.org/jdk/pull/11111
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic