summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-09-04 15:23:37 +0200
committerGitHub <noreply@github.com>2023-09-04 15:23:37 +0200
commit0c7951d53ae1a2724f6740431708c302bbdd876f (patch)
treeecd05c9d48770c5055587a7c98a70d636dcc817f
parentfbc4579c70e596007b75363496f5eb33720d6574 (diff)
parenta5654fb3769135ced0daabc7aa50138cc02523b1 (diff)
Merge pull request #28381 from vespa-engine/toregge/limit-madv-dontdump-to-linux
MADV_DONTDUMP is specific for linux.
-rw-r--r--searchlib/src/vespa/searchlib/util/fileutil.cpp2
-rw-r--r--vespalib/src/vespa/vespalib/io/mapped_file_input.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/util/fileutil.cpp b/searchlib/src/vespa/searchlib/util/fileutil.cpp
index c2f86224312..f602c66b544 100644
--- a/searchlib/src/vespa/searchlib/util/fileutil.cpp
+++ b/searchlib/src/vespa/searchlib/util/fileutil.cpp
@@ -36,7 +36,9 @@ LoadedMmap::LoadedMmap(const vespalib::string &fileName)
if (sz) {
void *tmpBuffer = mmap(nullptr, sz, PROT_READ, MAP_PRIVATE, fd.fd(), 0);
if (tmpBuffer != MAP_FAILED) {
+#ifdef __linux__
madvise(tmpBuffer, sz, MADV_DONTDUMP);
+#endif
_mapSize = sz;
_mapBuffer = tmpBuffer;
uint32_t hl = GenericHeader::getMinSize();
diff --git a/vespalib/src/vespa/vespalib/io/mapped_file_input.cpp b/vespalib/src/vespa/vespalib/io/mapped_file_input.cpp
index 7f1f0d003b7..95e4a1b496f 100644
--- a/vespalib/src/vespa/vespalib/io/mapped_file_input.cpp
+++ b/vespalib/src/vespa/vespalib/io/mapped_file_input.cpp
@@ -20,7 +20,9 @@ MappedFileInput::MappedFileInput(const vespalib::string &file_name)
if (_data != MAP_FAILED) {
_size = info.st_size;
madvise(_data, _size, MADV_SEQUENTIAL);
+#ifdef __linux__
madvise(_data, _size, MADV_DONTDUMP);
+#endif
}
}
}