<feed xmlns='http://www.w3.org/2005/Atom'>
<title>allocbench/src/Makefile, branch binary_chattymalloc</title>
<subtitle>benchmark tool for POSIX memory allocators</subtitle>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/'/>
<entry>
<title>fix compilation of chattymalloc</title>
<updated>2020-01-22T15:46:11+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2020-01-22T15:46:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=222423a642eb8fc984833f3d344a421fe3a34047'/>
<id>222423a642eb8fc984833f3d344a421fe3a34047</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>improve chattymalloc and chattyparser</title>
<updated>2020-01-17T01:47:29+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2020-01-17T01:47:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=db3e928f6c84d6d86369ab77be35983a3e96dd1d'/>
<id>db3e928f6c84d6d86369ab77be35983a3e96dd1d</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>speedup bumpptr_alloc</title>
<updated>2019-11-12T10:12:00+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-11-12T10:12:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=639c7ca5885b8f47d252754694534685acaaaefb'/>
<id>639c7ca5885b8f47d252754694534685acaaaefb</id>
<content type='text'>
Don't use three individual expensive TSD variables.
Externalize and inline bump_up.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't use three individual expensive TSD variables.
Externalize and inline bump_up.
</pre>
</div>
</content>
</entry>
<entry>
<title>don't use bc to calculate MEMSIZE for our allocators</title>
<updated>2019-11-06T14:51:59+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-11-06T14:51:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=7277e592430648bc3fd4436f932baa62487c28d3'/>
<id>7277e592430648bc3fd4436f932baa62487c28d3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>catch SIGSEGV as well; register sa_handlers only if its SIG_DLF before</title>
<updated>2019-09-29T21:49:17+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-09-29T21:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=9cc0a7f4ab4b0584bf06a4713563d96e4a3a9a72'/>
<id>9cc0a7f4ab4b0584bf06a4713563d96e4a3a9a72</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>catch if cmd aborts</title>
<updated>2019-09-29T13:35:53+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-09-29T13:31:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=3f173d0b6c85ce5fffdcbe3da3b01eef8192033e'/>
<id>3f173d0b6c85ce5fffdcbe3da3b01eef8192033e</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>add first speedymalloc draft</title>
<updated>2019-09-05T21:08:11+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-09-05T21:08:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=09f67c171fd997774870e4ec66957c348e19ca74'/>
<id>09f67c171fd997774870e4ec66957c348e19ca74</id>
<content type='text'>
speedymalloc is a thread-local cached bump pointer allocator
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
speedymalloc is a thread-local cached bump pointer allocator
</pre>
</div>
</content>
</entry>
<entry>
<title>readd chattymalloc</title>
<updated>2019-08-22T14:07:58+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-08-19T16:23:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=196fa608205bdbd4016200e47a55e9fb000f2b11'/>
<id>196fa608205bdbd4016200e47a55e9fb000f2b11</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>use LD_LIBRARY_PATH for glibc instead of calling its loader</title>
<updated>2019-08-12T09:10:15+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-08-12T09:10:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=c6a768c12ce7e83631d08f53937a075c4f76e2d5'/>
<id>c6a768c12ce7e83631d08f53937a075c4f76e2d5</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework exec chain</title>
<updated>2019-08-11T20:40:06+00:00</updated>
<author>
<name>Florian Fischer</name>
<email>florian.fl.fischer@fau.de</email>
</author>
<published>2019-08-11T20:28:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.muhq.space/allocbench/commit/?id=9d056ff64bf887e2c3479fe515bf7c95cb39e5b6'/>
<id>9d056ff64bf887e2c3479fe515bf7c95cb39e5b6</id>
<content type='text'>
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 &lt;LD_PRELOAD&gt; {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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;LD_PRELOAD&gt; {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.
</pre>
</div>
</content>
</entry>
</feed>
