<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><br></div><div><br></div><div><span id="zwchr" data-marker="__DIVIDER__">----- On Nov 13, 2017, at 1:40 PM, Nalin Pai <nalinpai@gmail.com> wrote:<br></span></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="ltr">Hi,<br><div>In the per-pid buffer scheme, when are the ring buffers allocated for each pid? Is it when a channel is created or is it an event provided by that process is enabled for a specific channel.</div></div></blockquote><div><br></div><div>In per-pid buffers, the buffers are allocated for each registered process whenever<br data-mce-bogus="1"></div><div>each of those process is registered (typically at program launch). Buffer allocation<br data-mce-bogus="1"></div><div>of per-pid buffers brings a significant overhead on systems with short-lived processes.<br data-mce-bogus="1"></div><div>Using "per-uid" buffers is recommended instead in those situations.<br data-mce-bogus="1"></div><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="ltr"><br><div>I am trying to understand whether there is an overhead to creating many channels. Will a process incur the allocation of buffers for a channel that is not interested in any of the events that the process is providing?</div></div></blockquote><div>Yes, a process will have to allocate buffers if it's registered to lttng-sessiond, even if<br></div><div>it does not contain any event enabled for that channel. This is needed to handle<br data-mce-bogus="1"></div><div>dynamically loaded libraries for instance, which may add additional events into a<br data-mce-bogus="1"></div><div>process after its initial constructor execution.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Thanks,<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Mathieu<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="ltr"><br><div>-Nalin</div><br></div><br>_______________________________________________<br>lttng-dev mailing list<br>lttng-dev@lists.lttng.org<br>https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev<br></blockquote></div><div><br></div><div data-marker="__SIG_POST__">-- <br></div><div>Mathieu Desnoyers<br>EfficiOS Inc.<br>http://www.efficios.com</div></div></body></html>