From 71ae933f5af528f9a8cda8f3066e61f8dddb8559 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sun, 11 Aug 2019 19:24:58 +0200 Subject: check if vm.overcommit_memory is set before building scalloc Scalloc checks if it is allowed to overcommit memory at runtime and aborts. Calling abort() does not set an exit code and therefore does not trigger allocbenchs failure handling. To prevent crashing at runtime we now fail early. --- src/allocators/scalloc.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/allocators/scalloc.py b/src/allocators/scalloc.py index 3314fc4..f2f15b4 100644 --- a/src/allocators/scalloc.py +++ b/src/allocators/scalloc.py @@ -1,4 +1,5 @@ from src.allocator import Allocator, Allocator_Sources, library_path +from src.util import print_error version = "v1.0.0" @@ -26,5 +27,12 @@ class Scalloc (Allocator): super().__init__(name, **kwargs) + def build(self): + with open("/proc/sys/vm/overcommit_memory", "r") as f: + if f.read()[0] != "1": + print_error("Scalloc needs permission to overcommit_memory") + raise AssertionError("vm.overcommit_memory not set") + return super().build() + scalloc = Scalloc("scalloc", color="xkcd:magenta") -- cgit v1.2.3