On Thu, 17 Nov 2022 09:24:04 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 incrementally with one additional > commit since the last revision: > > Fix Richard comments Not an expert of every aspect but the changes look good to me. Thanks, Richard. Marked as reviewed by rrich (Reviewer). ------------- PR: https://git.openjdk.org/jdk/pull/11111