dieOnMapUnmapError();
}
-static bool madviseNeedsMemset() {
+static bool madviseNotNeedFails() {
const uptr Size = getPageSizeCached();
char *P = reinterpret_cast<char *>(mmap(0, Size, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0));
return R;
}
-static bool madviseNeedsMemsetCached() {
+static bool madviseNotNeedFailsCached() {
static atomic_u8 Cache;
enum State : u8 { Unknown = 0, Yes = 1, No = 2 };
State NeedsMemset = static_cast<State>(atomic_load_relaxed(&Cache));
if (NeedsMemset == Unknown) {
- NeedsMemset = madviseNeedsMemset() ? Yes : No;
+ NeedsMemset = madviseNotNeedFails() ? Yes : No;
atomic_store_relaxed(&Cache, NeedsMemset);
}
return NeedsMemset == Yes;
void releasePagesToOS(uptr BaseAddress, uptr Offset, uptr Size,
UNUSED MapPlatformData *Data) {
void *Addr = reinterpret_cast<void *>(BaseAddress + Offset);
- if (madviseNeedsMemsetCached()) {
+ if (madviseNotNeedFailsCached()) {
// Workaround for QEMU-user ignoring MADV_DONTNEED.
// https://github.com/qemu/qemu/blob/b1cffefa1b163bce9aebc3416f562c1d3886eeaa/linux-user/syscall.c#L11941
// https://bugs.launchpad.net/qemu/+bug/1926521