On Mon, 14 Sep 2020 02:01:58 GMT, David Holmes <[email protected]> wrote:
> Not sure about the JVM TI changes! Here is a generic comment. You mention that the specification doesn't make it clear whether the roots reported are strong or weak. This is true. There is no mention about roots being strong or weak here. Notably, all listed roots, are strong though. I believe that with the chosen interpretation of "root", it is implied that it is strong, and hence why strong vs weak roots is not discussed. According to the memory management glossary (https://www.memorymanagement.org/glossary/r.html#glossary-r), this is the definition of a root: "In tracing garbage collection, a root holds a reference or set of references to objects that are a priori reachable. The root set is used as the starting point in determining all reachable data." Note that, this definition of root makes it implicit that it is also strong. And after a long discussion with GC nerds in Stockholm, this is in fact also why we have IN_NATIVE oop accesses, rather than IN_ROOT oop accesses. Because the opinions differed too much about what a "root" is. But to me it really does look like the JVMTI interpretation of a root, is a strong root, and hence that this is precisely what the text is talking about when mentioning roots, and hence also why all the enumerated roots, are indeed strong roots. Same comments for the HPROF_GC_ROOT_* discussion, as for the JVMTI_HEAP_ROOT_* discussion. That is also why I think it is now a bug to report them, as they are no longer "roots" in the JVMTI/HPROF sense. But you are right, filing a CSR for the behavioural change is probably a good idea. ------------- PR: https://git.openjdk.java.net/jdk/pull/135
