<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">Hi Sebastien,</font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000"><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">I have written a simple program with a loop 1 million times adding a trace everytime.</font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">Please find the simple program at <a href="https://github.com/vjanandr/sampleC/blob/master/lttng/benchmark/lttng_benchmark.c">https://github.com/vjanandr/sampleC/blob/master/lttng/benchmark/lttng_benchmark.c</a></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000"><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">I first configured the channel and then ran the benchmark program.</font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">More logs @ <a href="https://gist.github.com/vjanandr/1db6a6a9d93e6b3f2ac30a05aadcf06b">https://gist.github.com/vjanandr/1db6a6a9d93e6b3f2ac30a05aadcf06b</a></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000"><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">Here is the observation below:</font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000"><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">a. default 4 subbuffers with 128K each takes 1894063 microseconds</font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">b. 16 subbuffers with 1024K each takes 1882392 microseconds</font></div><div class="gmail_default" style=""><font color="#000000"><font face="verdana, sans-serif">b. 16 subbuffer with 2M each takes 1884999 microseconds</font><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000"><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">on an average the programs takes about 1.8 seconds for each run.</font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000"><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">Is this expected ?, if I have to improve the performance should I configure anything different ?</font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000"><br></font></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><font color="#000000">Just that I understand this better, I have been trying to understand this from looking at the code. Could you please point me to the code that might be impacting this ?</font></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><font face="verdana, sans-serif" color="#0000ff">Regards,</font><div><font face="verdana, sans-serif" color="#0000ff">Vijay</font></div></div></div></div>
<br><div class="gmail_quote">On Mon, Jun 27, 2016 at 8:54 PM, Sebastien Boisvert <span dir="ltr"><<a href="mailto:sboisvert@gydle.com" target="_blank">sboisvert@gydle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Vijay,<br>
<span class=""><br>
<br>
On 06/27/2016 06:12 AM, Vijay Anand wrote:<br>
> Hi,<br>
><br>
> I have been trying to understand the impact of performance while logging user space program based on the subbuffer count and size.<br>
><br>
<br>
</span>The sub-buffers count and size is well-documented here:<br>
<br>
    <a href="http://lttng.org/docs/#doc-channel-subbuf-size-vs-subbuf-count" rel="noreferrer" target="_blank">http://lttng.org/docs/#doc-channel-subbuf-size-vs-subbuf-count</a><br>
<span class=""><br>
<br>
<br>
> I have a simple program logging 1 million traces<br>
<br>
</span>Do you mean that you recorded 1 million UST events ?<br>
<br>
Or do you mean that you traced your app 1 million times and you generated 1 million traces ?<br>
<span class=""><br>
<br>
> and I dont seem to see any appreciable performance between the below two configurations.<br>
><br>
> a. default 4 subbufers 128KB each<br>
> b. 16 subbufers with 1024kB each.<br>
<br>
</span>When you are enabling your UST events (before starting the LTTng session),<br>
are you enabling your UST events in your custom channel (the one with configuration a. or configuration b.) ?<br>
<br>
<br>
If not, it could explain the lack of difference in performance between your 2 configurations.<br>
<br>
<br>
Example:<br>
<br>
    lttng create<br>
<br>
    lttng enable-channel -u --subbuf-size 4M channel7<br>
    lttng enable-event -u -c channel7 gydle_om:Allocator_constructor_default<br>
<br>
    lttng start<br>
<br>
    run-your-app<br>
<br>
    lttng stop<br>
    lttng view > trace.txt<br>
<span class=""><br>
<br>
<br>
><br>
> Moreover I have been looking at the lttng-ust code to understand the performance impacts from the implementation and unable to comprehend what is documented at<br>
><br>
> <a href="http://lttng.org/docs/#doc-channel-subbuf-size-vs-subbuf-count" rel="noreferrer" target="_blank">http://lttng.org/docs/#doc-channel-subbuf-size-vs-subbuf-count</a><br>
><br>
> I see that channel_backend_init, _shm_object_table_alloc_shm seems to allocate one big shared memory chunk which again is subdivided into subbuffers with each subbuffer referenced using the subbufer index.<br>
><br>
> Further more lib_ring_buffer_write seems to find the subbuffer index and write "len" number of bytes into the subbuffer index.<br>
><br>
> Could anyone please enlighten me what is the overhead involved while switching from one subbufer to another as documented.<br>
><br>
<br>
</span>The documentation indicates that the tracer's CPU overhead is caused by 2 things:<br>
<br>
1) marking the current sub-buffer as consumable, and<br>
2) switching to an empty sub-buffer.<br>
<br>
<br>
<br>
<br>
> Regards,<br>
> Vijay<br>
><br>
><br>
> _______________________________________________<br>
> lttng-dev mailing list<br>
> <a href="mailto:lttng-dev@lists.lttng.org">lttng-dev@lists.lttng.org</a><br>
> <a href="https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev" rel="noreferrer" target="_blank">https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev</a><br>
><br>
</blockquote></div><br></div>