<font size=2 face="sans-serif">Hi,</font>
<br>
<br><font size=2 face="sans-serif">Thanks for the suggestions. I am indeed
going in a similar direction.</font>
<br>
<br><font size=2 face="sans-serif">Nonetheless, I still think the we as
a community of people who care about LTTng itself, should push for improving
its memory footprint where possible.</font>
<br>
<br><font size=2 color=#000080 face="sans-serif">Amit Margalit</font>
<br><font size=2 color=#808000 face="sans-serif">IBM XIV </font><font size=2 face="sans-serif">-
<i>Storage Reinvented</i></font>
<br><font size=2 face="sans-serif">XIV-NAS Development Team</font>
<br><font size=2 face="sans-serif">Tel. 03</font><font size=2 face="Arial">-689-7774</font>
<br><font size=2 face="Arial">Fax. 03-689-7230</font>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From:
</font><font size=1 face="sans-serif">Vlad <vlad@demoninsight.com></font>
<br><font size=1 color=#5f5f5f face="sans-serif">To:
</font><font size=1 face="sans-serif">lttng-dev <lttng-dev@lists.lttng.org></font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date:
</font><font size=1 face="sans-serif">10/29/2013 04:34 PM</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject:
</font><font size=1 face="sans-serif">Re: [lttng-dev]
What is the size overhead of UST tracepoints? (hint:
very large indeed)</font>
<br>
<hr noshade>
<br>
<br>
<br>
<br><font size=3>On Oct 29, 2013, at 4:42 AM, Amit Margalit <</font><a href=mailto:AMITM@il.ibm.com><font size=3 color=blue><u>AMITM@il.ibm.com</u></font></a><font size=3>>
wrote:</font>
<br>
<br><font size=2 face="sans-serif">Additionally, there is a ton of code
to calculate the event size, its alignment, and to verify that the names
are not longer than the 256 byte buffer, and more.</font><font size=3>
</font>
<br>
<br><font size=3>A couple of thoughts:</font>
<br>
<br><font size=3>(a) there may be a way to share fewer definitions of events
across more event emit sites. Especially if LTTng supported optional/missing
fields :) For example, define a single "function.entry" and a
single "function.exit" instead of a unique definition for each
function you have. Disambiguate using a parameter.</font>
<br>
<br><font size=3>(b) this is not something that could be done in kernel
but in a C++ user app it's fairly easy to statically compute everything
that depends on information known at compile time. I use a custom EDSL
implemented via boost.proto. As a result, only the stuff that gets used
is embedded in object code and all event emit calls inline in very fast
assembly that's optimal for each particular combination of actual argument
values.</font>
<br>
<br><font size=3>Cheers,</font>
<br><font size=3>Vlad</font><tt><font size=2>_______________________________________________<br>
lttng-dev mailing list<br>
lttng-dev@lists.lttng.org<br>
</font></tt><a href="http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev"><tt><font size=2>http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev</font></tt></a><tt><font size=2><br>
</font></tt>
<br>