[all-commits] [llvm/llvm-project] f0703c: [scudo][standalone] Correct min/max region indices
Kostya Kortchinsky via All-commits
all-commits at lists.llvm.org
Mon Nov 16 12:43:39 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: f0703cb1b24be4f915257f91a290a3d92ac6cd4f
https://github.com/llvm/llvm-project/commit/f0703cb1b24be4f915257f91a290a3d92ac6cd4f
Author: Kostya Kortchinsky <kostyak at google.com>
Date: 2020-11-16 (Mon, 16 Nov 2020)
Changed paths:
M compiler-rt/lib/scudo/standalone/primary32.h
Log Message:
-----------
[scudo][standalone] Correct min/max region indices
The original code to keep track of the minimum and maximum indices
of allocated 32-bit primary regions was sketchy at best.
`MinRegionIndex` & `MaxRegionIndex` were shared between all size
classes, and could (theoretically) have been updated concurrently. This
didn't materialize anywhere I could see, but still it's not proper.
This changes those min/max indices by making them class specific rather
than global: classes are locked when growing, so there is no
concurrency there. This also allows to simplify some of the 32-bit
release code, that now doesn't have to go through all the regions to
get the proper min/max. Iterate and unmap will no longer have access to
the global min/max, but they aren't used as much so this is fine.
Differential Revision: https://reviews.llvm.org/D91106
More information about the All-commits
mailing list