<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Texte de bulles Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.TextedebullesCar
        {mso-style-name:"Texte de bulles Car";
        mso-style-priority:99;
        mso-style-link:"Texte de bulles";
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:FR-CA;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><b><span lang="EN-CA" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">De :</span></b><span lang="EN-CA" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Anand Neeli [mailto:anand.neeli@gmail.com]
<br>
<b>Envoyé :</b> 7 avril 2014 10:37<br>
<br>
<o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">- It does<span style="color:#1F497D">n’</span>t matter if the tracepoints are static or dynamically loaded with the app.
</span>Once there is a change in tracepoints the app should be reloaded (even though not compiled). Even though the tracepoints can be shared, but changing tracepoints we would need to restart all the app's which share the tracepoints.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA">(Just trying to make a statement on pros and cons here)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">   Not quite true.  If the tracepoints are statically included in the app, then the app must be recompiled and relinked whenever the tracepoints change.  Example:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">static: static.o tp.o<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">            @echo "~~~~~~Linking sample_$@:"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">            $(CC) -o sample_$@ $^ $(LDFLAGS) $(LIBDL) $(LIBUST)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">            @echo "   Use './sample_$@' to run sample_$@"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">static.o: sample.c tp.h<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">            @echo "~~~~~~Compiling $@:"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">            $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(TP_DEFINE) -c -o $@ $<<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">tp.o: tp.c tp.h<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">            @echo "~~~~~~Compiling $@:"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">            $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) -c -o $@ $<<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">   Every time you change tp.h, you must recompile tp.o and static.o and relink both into a new sample_static executable image.  If you keep the tracepoint() signatures unchanged, then you may get
 away with not recompiling static.o—but you must still relink.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">   At the other extreme, if the app explicitly loads the tracepoint provider using dlopen, then one could conceivably send a message to all apps to dlclose the tracepoint provider shared object and
 dlopen a replacement one (if such an API has been programmed in).  The apps wouldn’t need to stop running at all.  Of course this supposes the tracepoint() signatures do not change.  (To avoid confusing babeltrace, the traces must be collected using the buffers-pid
 channel option and the changeover must not occur within the same one-second time window)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">- * Does static or dynamic inclusion make difference(in terms of performance) if someone always want to run in tracing mode??<span style="color:#1F497D"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">   The difference will be slight: using a dynamic link, the linker must do a little extra work when loading the tracepoint provider shared object
 along with the application’s binary image, just because it needs to find it elsewhere. So you can expect app startup to be a little longer
<i>the first time</i>. If the app is using a tracepoint provider shared object which happens to be already used by other running apps, the startup time actually becomes
<i>shorter</i> because the tracepoint provider shared object is already in memory.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">   Once the app is running, there should be no difference at all in performance.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">Now let me put some light on how someone would like to use lttngin huge codebases.
</span>(this is my personal opinion)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">- Normally tracepoints are made per component/daemon.
</span>And not shared across daemons/components.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">- Tracing should always be running.
</span>It should never be switched off. (unless the application is not mission critical)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">- I'm planning to always run memory(snapshot) tracing with some fixed size buffer, which can capture last n-events or n-bytes<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">- Above memory tracing users can create another tracing session and dump traces to files if needed.(with their own filters and context in enable-event)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">   Sounds like a plan!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D">> </span><span lang="EN-CA">Thanks again for spending your time on these queries.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#1F497D">> </span>-Anand Neeli<o:p></o:p></p>
</div>
</div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">Daniel U. Thibault<br>
Protection des systèmes et contremesures (PSC) | Systems Protection & Countermeasures (SPC)<br>
Cyber sécurité pour les missions essentielles (CME) | Mission Critical Cyber Security (MCCS)<br>
R & D pour la défense Canada - Valcartier (RDDC Valcartier) | Defence R&D Canada - Valcartier (DRDC Valcartier)<br>
2459 route de la Bravoure<br>
Québec QC  G3J 1X5<br>
CANADA<br>
Vox</span><span style="font-size:10.5pt;font-family:Consolas;color:#1F497D"> </span><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">: (418) 844-4000 x4245<br>
Fax</span><span style="font-size:10.5pt;font-family:Consolas;color:#1F497D"> </span><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">: (418) 844-4538<br>
NAC : </span><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><a href="--ESFSECEV-TY3011--------------------------------" target="_blank"><span lang="FR-CA" style="font-size:10.0pt;font-family:"Courier New"">918V
 QSDJ</span></a></span><span lang="EN-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><</span><u><span style="font-size:10.0pt;font-family:"Courier New";color:blue"><a href="--ESFSECEV-TY3011--------------------------------" target="_blank">http://www.travelgis.com/map.asp?addr=918V%20QSDJ</a></span></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">><br>
</span><span style="font-size:11.0pt;font-family:Consolas;color:#1F497D">Gouvernement du Canada | Government of Canada<br>
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><</span><span lang="EN-CA" style="font-size:10.0pt;font-family:"Courier New";color:blue"><a href="--ESFSECEV-TY3011---------------------" target="_blank"><span lang="FR-CA">http://www.valcartier.drdc-rddc.gc.ca/</span></a></span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">></span><span style="color:#1F497D"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>