diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2020-02-26 16:19:57 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2020-02-26 16:19:57 +0100 |
| commit | ff0be98bad9549eeb06355e848bd868c792203a5 (patch) | |
| tree | a0444b0320b1b0d80b9b4215d16805113fb63871 /src/allocators/speedymalloc.py | |
| parent | da69bb193b5249c3f489b18a746e3800b36e37d0 (diff) | |
| download | allocbench-ff0be98bad9549eeb06355e848bd868c792203a5.tar.gz allocbench-ff0be98bad9549eeb06355e848bd868c792203a5.zip | |
externalize speedymalloc
Diffstat (limited to 'src/allocators/speedymalloc.py')
| -rw-r--r-- | src/allocators/speedymalloc.py | 35 |
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) |
