Commit 2d8061fc authored by Bartek Nowierski's avatar Bartek Nowierski Committed by Commit Bot

PartitionAlloc: PCScan: Align quarantine_bitmaps_size to partition page

On most systems partition page size is 16kB, but there are systems
where it isn't true.

Bug: 1144990, 11297512
Change-Id: I7c0b00e15b0ed210b293f0d17f33743c6974c82d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2517229
Commit-Queue: Bartek Nowierski <bartekn@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Auto-Submit: Bartek Nowierski <bartekn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#823962}
parent c4f859a2
......@@ -293,14 +293,13 @@ ALWAYS_INLINE void* PartitionBucket<thread_safe>::AllocNewSlotSpan(
// space.
char* tag_bitmap = super_page + PartitionPageSize();
char* quarantine_bitmaps = tag_bitmap + ReservedTagBitmapSize();
const size_t quarantine_bitmaps_size =
root->scannable ? 2 * sizeof(QuarantineBitmap) : 0;
#if ALLOW_ENABLING_PCSCAN
// TODO(bartekn): Fix the assert when partition page isn't 16kB.
size_t quarantine_bitmaps_size = 0;
if (root->scannable) {
size_t needed_size = 2 * sizeof(QuarantineBitmap);
quarantine_bitmaps_size =
(needed_size + PartitionPageSize() - 1) & PartitionPageBaseMask();
}
PA_DCHECK(quarantine_bitmaps_size % PartitionPageSize() == 0);
#else
PA_DCHECK(quarantine_bitmaps_size == 0);
#endif
char* ret = quarantine_bitmaps + quarantine_bitmaps_size;
root->next_partition_page = ret + total_size;
root->next_partition_page_end = root->next_super_page - PartitionPageSize();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment