[lworld] RFR: 8341771: [lworld] Heap dump recognizing new flat fields formats
Frederic Parain
fparain at openjdk.org
Wed Nov 5 20:30:32 UTC 2025
On Fri, 24 Oct 2025 00:57:03 GMT, Alex Menkov <amenkov at openjdk.org> wrote:
> The fix re-implements flat object support in heap dumper.
> New approach does not require changes in .hprof format.
> Flat value objects are dumped as heap-allocated objects with generated ID.
> For heap-allocated objects the ID is their address (oop), they are always aligned.
> ID generator for flat objects uses unaligned values (so there is no conflicts with oops).
>
> HeapDump test was reimplemented (it was disabled for a long time)
> Changes in hprof test lib were reverted (they are not needed anymore)
>
> testing: tier1..4,hs-tier5-svc
src/hotspot/share/services/heapDumper.cpp line 1818:
> 1816: void JavaStackRefDumper::dump_java_stack_refs(StackValueCollection* values) {
> 1817: for (int index = 0; index < values->size(); index++) {
> 1818: // TODO: can it be T_FLAT_ELEMENT?
The BasicType T_FLAT_ELEMENT is used exclusively in the context of flat arrays: in the layout_helper of flat arrays, and in a few array methods like arrayOopDesc::base_offset_in_bytes().
T_FLAT_ELEMENT cannot be used to describe the type of a field, the type of the argument of a Java method or the type of a value on the stack.
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/1700#discussion_r2496036627
More information about the valhalla-dev
mailing list