mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-15 18:32:18 +08:00
Clear unused memory regions for structures written to disk.
This commit is contained in:
parent
3ef18bc173
commit
702bd59ded
@ -1715,8 +1715,8 @@ public:
|
|||||||
ASSERT(size() <= spaceAvailable);
|
ASSERT(size() <= spaceAvailable);
|
||||||
nodeBytesFree = spaceAvailable - size();
|
nodeBytesFree = spaceAvailable - size();
|
||||||
|
|
||||||
// Mark unused available space as defined
|
// Zero unused available space
|
||||||
VALGRIND_MAKE_MEM_DEFINED((uint8_t*)this + size(), nodeBytesFree);
|
memset((uint8_t*)this + size(), 0, nodeBytesFree);
|
||||||
|
|
||||||
return size();
|
return size();
|
||||||
}
|
}
|
||||||
|
@ -226,8 +226,8 @@ public:
|
|||||||
if (bufferSize > 0) {
|
if (bufferSize > 0) {
|
||||||
buffer = (uint8_t*)arena.allocate4kAlignedBuffer(bufferSize);
|
buffer = (uint8_t*)arena.allocate4kAlignedBuffer(bufferSize);
|
||||||
|
|
||||||
// Mark any unused page portion defined
|
// Zero unused region
|
||||||
VALGRIND_MAKE_MEM_DEFINED(buffer + logicalSize, bufferSize - logicalSize);
|
memset(buffer + logicalSize, 0, bufferSize - logicalSize);
|
||||||
} else {
|
} else {
|
||||||
buffer = nullptr;
|
buffer = nullptr;
|
||||||
}
|
}
|
||||||
|
@ -731,8 +731,8 @@ public:
|
|||||||
ASSERT(mode == WRITE);
|
ASSERT(mode == WRITE);
|
||||||
debug_printf("FIFOQueue::Cursor(%s) writePage\n", toString().c_str());
|
debug_printf("FIFOQueue::Cursor(%s) writePage\n", toString().c_str());
|
||||||
|
|
||||||
// Mark the unused part of the item space as defined
|
// Zero unused space within itemspace
|
||||||
VALGRIND_MAKE_MEM_DEFINED(header()->begin() + offset, header()->itemSpace - header()->endOffset);
|
memset(header()->begin() + header()->endOffset, 0, header()->itemSpace - header()->endOffset);
|
||||||
|
|
||||||
queue->pager->updatePage(
|
queue->pager->updatePage(
|
||||||
PagerEventReasons::MetaData, nonBtreeLevel, VectorRef<PhysicalPageID>(&pageID, 1), page);
|
PagerEventReasons::MetaData, nonBtreeLevel, VectorRef<PhysicalPageID>(&pageID, 1), page);
|
||||||
@ -803,8 +803,8 @@ public:
|
|||||||
// Randomly reduce available item space to cause more queue pages to be needed
|
// Randomly reduce available item space to cause more queue pages to be needed
|
||||||
int reducedSpace = deterministicRandom()->randomInt(50, p->itemSpace);
|
int reducedSpace = deterministicRandom()->randomInt(50, p->itemSpace);
|
||||||
|
|
||||||
// Mark the eliminated item space as initialized
|
// Zero the eliminated space
|
||||||
VALGRIND_MAKE_MEM_DEFINED(header()->begin() + reducedSpace, p->itemSpace - reducedSpace);
|
memset(header()->begin() + reducedSpace, 0, p->itemSpace - reducedSpace);
|
||||||
|
|
||||||
p->itemSpace = reducedSpace;
|
p->itemSpace = reducedSpace;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user