aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* fix compilation of chattymallocFlorian Fischer2020-01-221-1/+1
|
* improve chattymalloc and chattyparserFlorian Fischer2020-01-171-1/+1
| | | | | | | | | | | | | chattymalloc is now more deterministic through binary logging. It seems we aren't loosing traces anymore and need less space. Each thread has it private tracebuffer, which gets passed to write() for each function call. chattyparser now parses binary traces while producing a plain text representation. It can also detect mostly all possible false sharing through traking the cached lines for all life allocations. Only allocations passed between threads are not tracked correctly as well as thread termination.
* speedup bumpptr_allocFlorian Fischer2019-11-121-2/+2
| | | | | Don't use three individual expensive TSD variables. Externalize and inline bump_up.
* don't use bc to calculate MEMSIZE for our allocatorsFlorian Fischer2019-11-061-1/+1
|
* catch SIGSEGV as well; register sa_handlers only if its SIG_DLF beforeFlorian Fischer2019-09-291-2/+2
|
* catch if cmd abortsFlorian Fischer2019-09-291-1/+5
| | | | | | perf stat does not propagate if the measured cmd aborts. To solve thing in a universal way we register a SIGABRT handler which creates the file aborted
* add first speedymalloc draftFlorian Fischer2019-09-051-1/+5
| | | | speedymalloc is a thread-local cached bump pointer allocator
* readd chattymallocFlorian Fischer2019-08-221-14/+15
|
* use LD_LIBRARY_PATH for glibc instead of calling its loaderFlorian Fischer2019-08-121-2/+2
| | | | | | | | Calling the loader fails on non ELF executables. Exec, formerly run_cmd, now takes two options: -l LD_LIBRARY_PATH, -p LD_PRELOAD. -p sets LD_PRELOAD and -l LD_LIBRARY_PATH before executing the rest of argv. glibc no longer uses cmd_prefix in favor of LD_LIBRARY_PATH.
* Rework exec chainFlorian Fischer2019-08-111-1/+5
| | | | | | | | | | | | | | Originally the structure of the executed cmd was {measure cmd} {allocator cmd prefix} {cmd} with the parent environment except LD_PRELOAD was modified for the whole command chain. Unfortunatly perf causes segfaults with some allocators and measuring allocators cmd prefixes doesnt seem fair. So the new cmd chain looks like: {allocator cmd prefix} {measure cmd} run_cmd <LD_PRELOAD> {cmd} without touching the environment in python. run_cmd sets LD_PRELOAD to the value it received in argv[1] and executes argv[2] with the rest of argv. This does also measure code not part of the actual benchmark but in a equal manner and not only for some allocators.
* improve bumpptr_allocFlorian Fischer2019-08-111-5/+9
| | | | | Return always 16 Byte aligned blocks and mmap the whole available memory reported by free -t per thread.
* add bumptr allocator implementationFlorian Fischer2019-04-281-2/+9
|
* s/target/allocator/ and remove analyse featureFlorian Fischer2019-02-081-5/+1
| | | | Use systemwide installed allocators by default
* rework build system #2: call make before executing any benchmarkFlorian Fischer2019-02-021-0/+2
| | | | | | Make scans the project directory for Makefiles and executes them. The targets should be build by the new targets/Makefile. All included Makefiles are now "quiet" by default.
* rework build system #1Florian Fischer2019-02-011-0/+27
each benchmark has its own Makefile which must put it's binaries into OBJDIR which is added to the PATH during execution.