[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: RFR: 8296875: Generational ZGC: Refactor loom code [v6]
From:       Erik =?UTF-8?B?w5ZzdGVybHVuZA==?= <eosterlund () openjdk ! org>
Date:       2022-11-30 14:11:39
Message-ID: aiz8hKx8kBgKftlH0gwjqW0fz_1d7Z8XIj56prli2jM=.3d3127fb-2520-4d6b-80da-040e966ca3d6 () github ! com
[Download RAW message or body]

On Mon, 28 Nov 2022 15:49:30 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.
> 
> Erik Ă–sterlund has updated the pull request with a new target base due to a merge \
> or a rebase. The pull request now contains seven commits: 
> - PPC support
> - Merge branch 'master' into 8296875_refactor_loom_code
> - Patricio concerns
> - Fix Richard comments
> - Indentation fix
> - Fix verification and RISC-V support
> - Generational ZGC: Loom support

Thanks for the reviews @coleenp and @TheRealMDoerr!

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

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