| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Don't use three individual expensive TSD variables.
Externalize and inline bump_up.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
speedymalloc is a thread-local cached bump pointer allocator
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Return always 16 Byte aligned blocks and mmap the whole available
memory reported by free -t per thread.
|
| | |
|
| |
|
|
| |
Use systemwide installed allocators by default
|
| |
|
|
|
|
| |
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.
|
|
|
each benchmark has its own Makefile which must put it's binaries into
OBJDIR which is added to the PATH during execution.
|