On Mon, 28 Nov 2022 15:49:30 GMT, Erik Österlund <eosterl...@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