--- a/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.orig 2017-01-05 20:50:56.329369189 +0000 +++ b/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2017-01-05 20:51:32.926099779 +0000 @@ -242,6 +242,12 @@ ASSERT(!(len & kSystemPageOffsetMask)); #if OS(POSIX) int ret = madvise(addr, len, MADV_FREE); + if (ret != 0 && errno == EINVAL) { + // MADV_FREE only works on Linux 4.5+ . If request failed, + // retry with older MADV_DONTNEED . Note that MADV_FREE + // being defined at compile time doesn't imply runtime support. + ret = madvise(addr, len, MADV_DONTNEED); + } RELEASE_ASSERT(!ret); #else setSystemPagesInaccessible(addr, len);