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

New & old remembered sets #418

Merged
merged 11 commits into from
Apr 27, 2022

Conversation

PalumboN
Copy link
Collaborator

@PalumboN PalumboN commented Apr 19, 2022

Now we have 2 remembered sets:

  • NewSpaceRememberedSet: Saving objects (from old or perm space) with references to new space's objects.
  • OldSpaceRememberedSet: Saving objects (from perm space) with references to old space's objects.

And:

  • OldSpaceRememberedSet are used as roots on fullGC.
  • There are changes on each store:
    • New check added for new remembered set
    • On each check, maybe the remembered set is iterated
    • CHECK IF WE NEED TO IMPROVE THIS

@PalumboN PalumboN requested a review from tesonep April 19, 2022 14:03
@PalumboN
Copy link
Collaborator Author

Failing tests are from JIT, they are already broken on permSpace branch

Comment on lines +11894 to +11896
(self isPermanent: objOop) ifTrue: [
(self isOld: valuePointer) ifTrue: [
self possiblePermStoreInto: objOop ] ].
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

⚠️ New check added for each store. Maybe can be inside previous if to avoid double check every time?.

Comment on lines -9718 to +9801
(self isRemembered: destObj) ifFalse:
[scavenger remember: destObj]
((self isRemembered: destObj) and: [
newSpaceRememberedSet isInRememberedSet: destObj ]) ifFalse: [
newSpaceRememberedSet remember: destObj ]
Copy link
Collaborator Author

@PalumboN PalumboN Apr 22, 2022

Choose a reason for hiding this comment

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

⚠️ Now isRemembered boolean is not enough because you don't know in which remembered set is. And is possible for an object to be in both.

We should measure if this affect performance and maybe improve the strategy.

@tesonep tesonep merged commit e76b5fa into pharo-project:feat/permSpace Apr 27, 2022
@PalumboN PalumboN deleted the newRememberedSet branch April 27, 2022 14:22
@guillep guillep mentioned this pull request Apr 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants