allocator: Ignore madvise ENOSYS error

Support kernels builts without CONFIG_ADVISE_SYSCALLS on small
embedded devices.
This commit is contained in:
klzgrad 2022-11-12 15:13:24 +08:00
parent f9f98eedd9
commit 5edebbfffb

View File

@ -361,7 +361,12 @@ void DiscardSystemPagesInternal(uintptr_t address, size_t length) {
// performance benefits unclear. // performance benefits unclear.
// //
// Therefore, we just do the simple thing: MADV_DONTNEED. // Therefore, we just do the simple thing: MADV_DONTNEED.
PA_PCHECK(0 == madvise(ptr, length, MADV_DONTNEED)); int ret = madvise(ptr, length, MADV_DONTNEED);
if (ret && errno == ENOSYS) {
// Ignores when the kernel is built without CONFIG_ADVISE_SYSCALLS
return;
}
PA_PCHECK(ret == 0);
#endif #endif
} }