Skip to content

New RAS allocation category for sparse heap - #23967

Merged
keithc-ca merged 1 commit into
eclipse-openj9:masterfrom
amicic:ras_category_offheap
May 26, 2026
Merged

New RAS allocation category for sparse heap#23967
keithc-ca merged 1 commit into
eclipse-openj9:masterfrom
amicic:ras_category_offheap

Conversation

@amicic

@amicic amicic commented May 25, 2026

Copy link
Copy Markdown
Contributor

Sparse heap for large object allocation is separately allocated from the main heap. It typically reserves address space that is bigger than heap itself, but it's only sparsely committed.

To reduce potential confusion during memory breakdown analysis, sparse heap memory reservation will now have a separate category, and will be reported by RAS in a separate line.

That way user can easily associate provided -Xmx value with the line for the main heap.

For example when provided

... -Xgcpolicy:balanced -Xmx256M...

java core will report

3MEMUSER       |  +--Memory Manager (GC): 1,500,775,080 bytes / 3909 allocations
3MEMUSER       |  |  |
4MEMUSER       |  |  +--Java Heap: 269,479,936 bytes / 1 allocation
3MEMUSER       |  |  |
4MEMUSER       |  |  +--Java Heap Sparse: 1,207,959,552 bytes / 1 allocation
3MEMUSER       |  |  |
4MEMUSER       |  |  +--Other: 23,335,592 bytes / 3907 allocations

@amicic
amicic requested review from dmitripivkine and keithc-ca May 25, 2026 14:48
@amicic

amicic commented May 25, 2026

Copy link
Copy Markdown
Contributor Author

depends on eclipse-omr/omr#8262

@keithc-ca

Copy link
Copy Markdown
Contributor

Like eclipse-omr/omr#8262 (comment), this should say "allocation", not "allocate".

Sparse heap for large object allocation is separately allocated from the
main heap. It typically reserves address space that is bigger than heap
itself, but it's only sparsely committed.

To reduce potential confusion during memory breakdown analysis, sparse
heap memory reservation will now have a separate category, and will be
reported by RAS  in a separate line.

That way user can easily associate provided -Xmx value with the line for
the main heap.

For example when provided

```
... -Xgcpolicy:balanced -Xmx256M...
```

java core will report

```
3MEMUSER       |  +--Memory Manager (GC): 1,500,775,080 bytes / 3909
allocations
3MEMUSER       |  |  |
4MEMUSER       |  |  +--Java Heap: 269,479,936 bytes / 1 allocation
3MEMUSER       |  |  |
4MEMUSER       |  |  +--Java Heap Sparse: 1,207,959,552 bytes / 1
allocation
3MEMUSER       |  |  |
4MEMUSER       |  |  +--Other: 23,335,592 bytes / 3907 allocations
```

Signed-off-by: Aleksandar Micic <Aleksandar_Micic@ca.ibm.com>
@amicic
amicic force-pushed the ras_category_offheap branch from 67948b4 to 50e56e2 Compare May 25, 2026 15:25
@amicic amicic changed the title New RAS allocate category for sparse heap New RAS allocation category for sparse heap May 25, 2026
@keithc-ca

Copy link
Copy Markdown
Contributor

Jenkins compile amac jdk21

@keithc-ca
keithc-ca merged commit 3b3f304 into eclipse-openj9:master May 26, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants