[compiler-rt] [scudo] Allow to resize allocation ring buffer (PR #82683)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 1 09:46:24 PDT 2024
================
@@ -1594,12 +1600,33 @@ class Allocator {
RB->StackDepotSize = StackDepotSize;
RB->RawStackDepotMap = DepotMap;
- atomic_store(&RingBufferAddress, reinterpret_cast<uptr>(RB),
- memory_order_release);
+ swapOutRingBuffer(RB);
static_assert(sizeof(AllocationRingBuffer) %
alignof(typename AllocationRingBuffer::Entry) ==
0,
"invalid alignment");
+ return true;
+ }
+
+ void swapOutRingBuffer(AllocationRingBuffer *NewRB) {
+ // To allow resizeRingBuffer to be called in a multi-threaded context by apps,
+ // we do not actually unmap, but only madvise(DONTNEED) the pages. That way,
+ // straggler threads will not crash.
----------------
ChiaHungDuan wrote:
Sorry I was having some tasks on hands last two weeks. Will circle back to the issue this two days.
https://github.com/llvm/llvm-project/pull/82683
More information about the llvm-commits
mailing list