Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
166ccfe
Naive implementation of FrozenObjectHeap
EgorBo Jul 3, 2021
1cb0927
Add RegisterFrozenSegment
EgorBo Jul 3, 2021
d2b9cbf
Clean up
EgorBo Jul 4, 2021
641365a
Add #include "common.h"
EgorBo Jul 4, 2021
33a126b
Fix build error
EgorBo Jul 4, 2021
bb1b835
Fix build
EgorBo Jul 4, 2021
2ef204a
Add lock
EgorBo Jul 4, 2021
a84a6ee
Clean up
EgorBo Jul 4, 2021
142295a
init memory on first allocation
EgorBo Jul 4, 2021
a446dd6
Clean up
EgorBo Jul 4, 2021
41665c3
revert changes in emitxarch.cpp
EgorBo Jul 4, 2021
66d6106
Merge branch 'main' of github.com:dotnet/runtime into poh-string-lite…
EgorBo Jul 28, 2022
67f32a7
Update branch, fix asserts
EgorBo Jul 28, 2022
9ecf7d7
fix release build
EgorBo Jul 28, 2022
45a454a
Ignore collectible assemblies, fix build
EgorBo Jul 29, 2022
1d0a710
Fix failing tests, address feedback
EgorBo Jul 29, 2022
201565e
Rename bAppDomainWontUnload to bIsCollectible
EgorBo Jul 29, 2022
c7dad85
Address feedback
EgorBo Jul 29, 2022
4202d9f
Clean up
EgorBo Jul 29, 2022
69ab9d2
Merge branch 'main' of github.com:dotnet/runtime into poh2
EgorBo Jul 29, 2022
a144453
Fix assert
EgorBo Jul 29, 2022
2571c9c
Fix more asserts not expecting TYP_REF constants being non zero
EgorBo Jul 29, 2022
286f8ab
Merge branch 'main' of github.com:dotnet/runtime into poh2
EgorBo Jul 29, 2022
28e0331
Test gc fix
EgorBo Jul 29, 2022
6625759
move check to IsEphemeral
EgorBo Jul 30, 2022
89df356
Test commit (do I need to update "ibAllocated"?)
EgorBo Jul 30, 2022
3cb98e9
Implement commit-on-demand
EgorBo Jul 30, 2022
c6df9ed
Clean up
EgorBo Jul 30, 2022
f50b4b9
bump FOH_COMMIT_PAGES
EgorBo Jul 30, 2022
2b55835
Merge branch 'main' of github.com:dotnet/runtime into poh2
EgorBo Jul 30, 2022
6ea2a50
Address feedback, clean up
EgorBo Jul 30, 2022
15ca880
Fix build
EgorBo Jul 30, 2022
193676e
Merge branch 'main' of github.com:dotnet/runtime into poh2
EgorBo Jul 30, 2022
9198043
Unix's ClrVirtualAlloc seems to be non-aligned
EgorBo Jul 30, 2022
7c98ef2
Oops, fix red CI
EgorBo Jul 30, 2022
af6e445
Multiple frozen segments
EgorBo Jul 30, 2022
2183c2f
Merge branch 'main' of github.com:dotnet/runtime into poh2
EgorBo Jul 31, 2022
4ef34dd
Clean up
EgorBo Jul 31, 2022
722eb82
fix typo
EgorBo Jul 31, 2022
0ae890a
Fix assert in assertionprop.cpp
EgorBo Jul 31, 2022
e59d27a
Address feedback
EgorBo Aug 18, 2022
90feb96
Merge branch 'main' of github.com:dotnet/runtime into poh-string-lite…
EgorBo Aug 18, 2022
ce3e19e
Merge branch 'main' of github.com:dotnet/runtime into poh-string-lite…
EgorBo Sep 1, 2022
b6fae80
Address feedback
EgorBo Sep 1, 2022
32cb338
Merge branch 'main' of github.com:dotnet/runtime into poh-string-lite…
EgorBo Sep 1, 2022
d20cc47
Address feedback
EgorBo Sep 2, 2022
31b5fdc
Fix potential issues
EgorBo Sep 3, 2022
1b1ab4c
Fix potential issues
EgorBo Sep 3, 2022
ed8ed7b
Merge branch 'main' of github.com:dotnet/runtime into poh-string-lite…
EgorBo Sep 4, 2022
88ad320
Address feedback
EgorBo Sep 4, 2022
943a235
Address feedback
EgorBo Sep 4, 2022
a3bfc8c
Check if this fixes all asserts
EgorBo Sep 5, 2022
1be12c5
Handle string.Empty (it used to be ignored)
EgorBo Sep 5, 2022
5c2a222
Apply suggestions from code review
EgorBo Sep 5, 2022
19d1734
Address feedback
EgorBo Sep 5, 2022
4762bcc
Address feedback
EgorBo Sep 5, 2022
2e03cc2
Update src/coreclr/vm/stringliteralmap.cpp
EgorBo Sep 5, 2022
2f00f71
Update src/coreclr/vm/stringliteralmap.cpp
EgorBo Sep 5, 2022
ddfbf73
fix compilation errors
EgorBo Sep 5, 2022
598b9c8
Merge branch 'main' of github.com:dotnet/runtime into poh-string-lite…
EgorBo Sep 7, 2022
802106e
Address Jan's feedback
EgorBo Sep 7, 2022
bfe96e7
Update src/coreclr/jit/gentree.cpp
EgorBo Sep 7, 2022
2e10c9c
Update gentree.cpp
EgorBo Sep 7, 2022
3415dc3
Merge branch 'main' of github.com:dotnet/runtime into poh-string-lite…
EgorBo Sep 12, 2022
bac0389
Address Maoni's feedback:
EgorBo Sep 13, 2022
01b5731
heap -> segment in comments
EgorBo Sep 13, 2022
8d139c9
Update src/coreclr/vm/frozenobjectheap.h
EgorBo Sep 13, 2022
b6deb3c
Address Jan's feedback around m_Crst creation
EgorBo Sep 13, 2022
1ba9d97
Fix order of initialization
EgorBo Sep 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix typo
  • Loading branch information
EgorBo committed Jul 31, 2022
commit 722eb8217b2c86be973b8a0f9eb5592771d8f1d7
4 changes: 2 additions & 2 deletions src/coreclr/gc/gcee.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -474,11 +474,11 @@ segment_handle GCHeap::RegisterFrozenSegment(segment_info *pseginfo)
#endif // FEATURE_BASICFREEZE
}

void GCHeap::UpdateFrozenSegment(segment_handle seg, uint8_t* allocated, uint8_t* commited)
void GCHeap::UpdateFrozenSegment(segment_handle seg, uint8_t* allocated, uint8_t* committed)
{
#ifdef FEATURE_BASICFREEZE
heap_segment* heap_seg = reinterpret_cast<heap_segment*>(seg);
heap_segment_committed (heap_seg) = commited;
heap_segment_committed (heap_seg) = committed;
heap_segment_allocated (heap_seg) = allocated;
Copy link
Member

Choose a reason for hiding this comment

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

There can be background GC running when this is done. Is background GC robust against this changing without any locks?

Copy link
Member Author

Choose a reason for hiding this comment

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

Good question, I am not sure 🙁

Copy link
Member

Choose a reason for hiding this comment

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

@Maoni0 Is it ok to modify heap_segment_allocated and commited like this?

This comment was marked as outdated.

Copy link
Member

Choose a reason for hiding this comment

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

that's fine because for BGC we only operate between the range of background_saved_lowest_address and background_saved_highest_address, which would be guaranteed to be committed. "operate" means we touch various GC data structures. I have not looked at the rest of this PR but I presume, based on this question, that you will not ever do this during a blocking GC. so if that's true then it's fine.

#endif // FEATURE_BASICFREEZE
}
Expand Down
2 changes: 1 addition & 1 deletion src/coreclr/gc/gcimpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ class GCHeap : public IGCHeapInternal
virtual segment_handle RegisterFrozenSegment(segment_info *pseginfo);
virtual void UnregisterFrozenSegment(segment_handle seg);
virtual bool IsInFrozenSegment(Object *object);
virtual void UpdateFrozenSegment(segment_handle seg, uint8_t* allocated, uint8_t* commited);
virtual void UpdateFrozenSegment(segment_handle seg, uint8_t* allocated, uint8_t* committed);

// Event control functions
void ControlEvents(GCEventKeyword keyword, GCEventLevel level);
Expand Down
2 changes: 1 addition & 1 deletion src/coreclr/gc/gcinterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -915,7 +915,7 @@ class IGCHeap {
virtual segment_handle RegisterFrozenSegment(segment_info *pseginfo) = 0;

// Updates given frozen segment
virtual void UpdateFrozenSegment(segment_handle seg, uint8_t* allocated, uint8_t* commited) = 0;
virtual void UpdateFrozenSegment(segment_handle seg, uint8_t* allocated, uint8_t* committed) = 0;

// Unregisters a frozen segment.
virtual void UnregisterFrozenSegment(segment_handle seg) = 0;
Expand Down