Skip to content

Conversation

@amicic
Copy link
Contributor

@amicic amicic commented Oct 29, 2024

When excessive GC criteria is evaluated, beside GC throughput overhead,
reclaimed memory is considered too, which is meaningful on Global GCs
only.

However, there are collectors (like Balanced PGC in OpenJ9) that are
global in a sense that may collect ANY part/subset of the heap, but not
necessarily the whole heap. This may lead to premature excessive GC
where such GCs are frequent, and their reclaim memory is very low hence
meeting the criteria, although effectively irrelevant.

This change strengthens the global GC criteria by also considering the
GC cycle type (beside just the type of subclass of MM_Collector), so
that only STW Whole Heap GCs are considered for memory reclamation
criteria.

Signed-off-by: Aleksandar Micic Aleksandar_Micic@ca.ibm.com

@amicic amicic added the comp:gc label Oct 29, 2024
@amicic amicic force-pushed the excessive_on_global branch 4 times, most recently from bcba533 to dd1d186 Compare October 29, 2024 19:58
@amicic
Copy link
Contributor Author

amicic commented Oct 29, 2024

@dmitripivkine please, review

@amicic amicic force-pushed the excessive_on_global branch from dd1d186 to c78cd91 Compare October 29, 2024 20:18
@dmitripivkine
Copy link
Contributor

@babsingh Would you please help to merge?

@amicic amicic force-pushed the excessive_on_global branch from c78cd91 to fe160d7 Compare October 29, 2024 20:20
@amicic amicic changed the title WIP: Excessive GC on whole heap only Excessive GC on whole heap only Oct 29, 2024
@amicic amicic force-pushed the excessive_on_global branch from fe160d7 to 5884832 Compare October 29, 2024 20:23
Copy link
Contributor

@babsingh babsingh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor nits.

@amicic amicic force-pushed the excessive_on_global branch from 5884832 to c0a7029 Compare October 29, 2024 21:03
When excessive GC criteria is evaluated, beside GC throughput overhead,
reclaimed memory is considered too, which is meaningful on Global GCs
only.

However, there are collectors (like Balanced PGC in OpenJ9) that are
global in a sense that may collect ANY part/subset of the heap, but not
necessarily the whole heap. This may lead to premature excessive GC
where such GCs are frequent, and their reclaim memory is very low hence
meeting the criteria, although effectively irrelevant.

This change strengthens the global GC criteria by also considering the
GC cycle type (beside just the type of subclass of MM_Collector), so
that only STW Whole Heap GCs are considered for memory reclamation
criteria.

Signed-off-by: Aleksandar Micic <Aleksandar_Micic@ca.ibm.com>
@amicic amicic force-pushed the excessive_on_global branch from c0a7029 to 95dcaef Compare October 29, 2024 21:35
@babsingh
Copy link
Contributor

jenkins build all

Copy link
Contributor

@dmitripivkine dmitripivkine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can get fine tuning in the future, this one allows us to avoid false Excessive GC triggering for now.

Copy link
Contributor

@LinHu2016 LinHu2016 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@babsingh babsingh merged commit be39f05 into eclipse-omr:master Oct 30, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants