aboutsummaryrefslogtreecommitdiff
path: root/src/allocators/speedymalloc.py
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2020-02-26 16:19:57 +0100
committerFlorian Fischer <florian.fl.fischer@fau.de>2020-02-26 16:19:57 +0100
commitff0be98bad9549eeb06355e848bd868c792203a5 (patch)
treea0444b0320b1b0d80b9b4215d16805113fb63871 /src/allocators/speedymalloc.py
parentda69bb193b5249c3f489b18a746e3800b36e37d0 (diff)
downloadallocbench-ff0be98bad9549eeb06355e848bd868c792203a5.tar.gz
allocbench-ff0be98bad9549eeb06355e848bd868c792203a5.zip
externalize speedymalloc
Diffstat (limited to 'src/allocators/speedymalloc.py')
-rw-r--r--src/allocators/speedymalloc.py35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/allocators/speedymalloc.py b/src/allocators/speedymalloc.py
index 0cf6836..e71ac5e 100644
--- a/src/allocators/speedymalloc.py
+++ b/src/allocators/speedymalloc.py
@@ -22,8 +22,35 @@ memory in speeds favor. Memory is mmapped per thread and never freed.
See src/bumpptr.c for the actual implementation.
"""
-import os
-from src.allocator import Allocator, BUILDDIR
+from src.artifact import GitArtifact
+from src.allocator import Allocator
-speedymalloc = Allocator("speedymalloc", LD_PRELOAD=os.path.join(BUILDDIR, "speedymalloc.so"),
- color="xkcd:dark")
+VERSION = "ac18af91cf7c50a686b34402b772423b013553d2"
+
+class Speedymalloc(Allocator):
+ """ Speedymalloc definition for allocbench"""
+
+ sources = GitArtifact("speedymalloc", "https://gitlab.cs.fau.de/flow/speedymalloc.git")
+
+ def __init__(self, name, **kwargs):
+
+ configuration = ""
+ for option, value in kwargs.get("options", {}).items():
+ configuration += f"-D{option}={value} "
+
+ self.build_cmds = ["meson {srcdir} {dir}",
+ f"meson configure {{dir}} {configuration}",
+ "ninja -C {dir}"]
+
+ self.LD_PRELOAD = "{dir}/libspeedymalloc.so"
+ super().__init__(name, **kwargs)
+
+speedymalloc = Speedymalloc("speedymalloc", version=VERSION)
+
+speedymalloc_dont_madv_free = Speedymalloc("speedymalloc_dont_madv_free",
+ options = {"madvise_free": "false"},
+ version=VERSION)
+
+speedymalloc_dont_madv_willneed = Speedymalloc("speedymalloc_dont_madv_willneed",
+ options = {"madvise_willneed": "false"},
+ version=VERSION)