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

we need to skip the SIP region in the last step of handling the alloc region #94249

Merged
merged 1 commit into from Nov 3, 2023

Conversation

Maoni0
Copy link
Member

@Maoni0 Maoni0 commented Oct 31, 2023

in process_remaining_regions, if we haven't gone through the while loop to handle the regions with pinned plugs, we can end up with current_region being an SIP region. then we mistakenly call decide_on_demotion_pin_surv which can change its planned generation. I'm filtering this out before we call decide_on_demotion_pin_surv because the pinned survival in an SIP region is always 0 so we wouldn't want decide_on_demotion_pin_surv to treat it as "to be empty".

thanks very much, @kevingosse, for reporting this!

@ghost
Copy link

ghost commented Oct 31, 2023

Tagging subscribers to this area: @dotnet/gc
See info in area-owners.md if you want to be subscribed.

Issue Details

in process_remaining_regions, if we haven't gone through the while loop to handle the regions with pinned plugs, we can end up with current_region being an SIP region. then we mistakenly call decide_on_demotion_pin_surv which can change its planned generation. I'm filtering this out before we call decide_on_demotion_pin_surv because the pinned survival in an SIP region is always 0 so we wouldn't want decide_on_demotion_pin_surv to treat it as "to be empty".

thanks very much, @kevingosse, for reporting this!

Author: Maoni0
Assignees: Maoni0
Labels:

area-GC-coreclr

Milestone: -

@teo-tsirpanis
Copy link
Contributor

I've been wondering, what is SIP?

@Maoni0
Copy link
Member Author

Maoni0 commented Nov 1, 2023

SIP stands for Swept In Plan - those are special regions that are swept during a compacting GC because the survival rate is very high on them. they are disabled by default as they might increase your heap size noticeably.

@teo-tsirpanis
Copy link
Contributor

Thanks!

Copy link
Member

@cshung cshung left a comment

Choose a reason for hiding this comment

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

LGTM

@Maoni0 Maoni0 merged commit 76a995a into dotnet:main Nov 3, 2023
109 of 111 checks passed
@dotnet dotnet locked as resolved and limited conversation to collaborators Dec 4, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants