allocator: Fix recommitted pages not being zeroed when madvise is not available.

Support kernels built without CONFIG_ADVISE_SYSCALLS on small
embedded devices.
This commit is contained in:
klzgrad 2022-11-12 15:13:24 +08:00
parent 873b100855
commit 60ae4c62d3
2 changed files with 5 additions and 0 deletions

View File

@ -260,6 +260,8 @@ constexpr PA_COMPONENT_EXPORT(
PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() {
#if BUILDFLAG(IS_APPLE)
return false;
#elif defined(NO_MADVISE_SYSCALL)
return false;
#else
return true;
#endif

View File

@ -410,6 +410,9 @@ void DiscardSystemPagesInternal(uintptr_t address, size_t length) {
ret = madvise(ptr, length, MADV_DONTNEED);
}
PA_PCHECK(ret == 0);
#elif defined(NO_MADVISE_SYSCALL)
static_cast<void>(ptr);
static_cast<void>(length);
#else // BUILDFLAG(IS_APPLE)
// We have experimented with other flags, but with suboptimal results.
//