Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bound Tenure Expand #3495

Merged
merged 1 commit into from
Feb 5, 2019
Merged

Conversation

amicic
Copy link
Contributor

@amicic amicic commented Jan 22, 2019

Fixing issue in #3492

When running Gencon with Concurrent Mark disabled, prevent the unbounded
growth of Tenure space.

Two new percolate reasons are introduced:

  • if Tenure free heap was already high (at least midway between min and
    max bounds) in previous global GC, and it's suspected that Scavenge will
    expand Tenure even more (due to low current Tenure free, and based on
    historic tenuring activity) start global GC instead
  • if Tenure free heap was not very high in previous GC, we'll allow
    Scavenges and Tenure expansion, but we will break the streak when
    hitting the max free bound, and start global GC

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

@charliegracie
Copy link
Contributor

@genie-omr build all

@charliegracie
Copy link
Contributor

@dmitripivkine can you review this as well please?

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.

Looks good to me.

@amicic amicic force-pushed the bound_tenure_noCM branch from bf30deb to 86487f7 Compare January 23, 2019 20:02
@amicic
Copy link
Contributor Author

amicic commented Jan 23, 2019

added a couple of trace points

uintptr_t soaFreeMemorySize = _extensions->heap->getApproximateActiveFreeMemorySize(MEMORY_TYPE_OLD) - _extensions->heap->getApproximateActiveFreeLOAMemorySize(MEMORY_TYPE_OLD);

/* We suspect that next scavegne will cause Tenure expansion, while Tenure free ratio is (was) already high enough */
if ((scavengerGCStats->_avgTenureBytes > soaFreeMemorySize) && (_extensions->freeOldHeapSizeOnLastGlobalGC > (_extensions->oldHeapSizeOnLastGlobalGC * midTenureFreeRatio))) {
Copy link
Contributor

Choose a reason for hiding this comment

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

there is some weird spacing on this line

@charliegracie
Copy link
Contributor

@genie-omr build all

@@ -1419,7 +1426,6 @@ class MM_GCExtensionsBase : public MM_BaseVirtual {
, concurrentScavenger(false)
, concurrentScavengerForced(false)
, concurrentScavengerHWSupport(false)
, concurrentScavengerBackgroundThreads(1)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

just noticed that I mistakenly removed a line here. must fix this first

@amicic amicic force-pushed the bound_tenure_noCM branch from 86487f7 to d4d9756 Compare February 4, 2019 16:32
Fixing issue in eclipse-omr#3492

When running Gencon with Concurrent Mark disabled, prevent the unbounded
growth of Tenure space.

Two new percolate reasons are introduced:
- if Tenure free heap was already high (at least midway between min and
max bounds) in previous global GC, and it's suspected that Scavenge will
expand Tenure even more (due to low current Tenure free, and based on
historic tenuring activity) start global GC instead
- if Tenure free heap was not very high in previous GC, we'll allow
Scavenges and Tenure expansion, but we will break the streak when
hitting the max free bound, and start global GC

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
@amicic amicic force-pushed the bound_tenure_noCM branch from d4d9756 to 8648c0d Compare February 4, 2019 16:34
@charliegracie
Copy link
Contributor

@genie-omr build all

@charliegracie charliegracie merged commit dfbca14 into eclipse-omr:master Feb 5, 2019
@amicic amicic deleted the bound_tenure_noCM branch February 24, 2020 17:34
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