This is an archive of the discontinued LLVM Phabricator instance.

Reland "[scudo] Support partial concurrent page release in SizeClassAllocator64"
ClosedPublic

Authored by Chia-hungDuan on Jul 11 2023, 1:35 PM.

Diff Detail

Event Timeline

Chia-hungDuan created this revision.Jul 11 2023, 1:35 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 11 2023, 1:35 PM
Herald added subscribers: yaneury, Enna1. · View Herald Transcript
Chia-hungDuan requested review of this revision.Jul 11 2023, 1:35 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 11 2023, 1:35 PM
Herald added a subscriber: Restricted Project. · View Herald Transcript
Chia-hungDuan planned changes to this revision.Jul 11 2023, 1:36 PM

Merge non-full TransferBatches

@cferris , FYI, Base is the original CL and Diff 2 includes the fix

Chia-hungDuan added inline comments.Jul 11 2023, 4:48 PM
compiler-rt/lib/scudo/standalone/primary64.h
1464–1465

will be removed

1476–1477

May add a

DCHECK_EQ(BG->Batches.front()->getCount(), MaxCachedPerBatch)
cferris accepted this revision.Jul 11 2023, 7:04 PM

LGTM

This revision is now accepted and ready to land.Jul 11 2023, 7:04 PM

Also add releaseToOS() in SCUDO_TYPED_TEST(ScudoCombinedTest, ThreadedCombined) which increases the test coverage

I have run > 10K runs of multithread tests and ensured all the code path have been verified.

compiler-rt/lib/scudo/standalone/primary64.h
1476–1477

This will be checked in markFreeblocks(). Don't need to add one here.