* [lttng-dev] LTTng user-space callstacks @ 2020-03-26 17:39 Valentin Grigorev 2020-03-26 19:41 ` Mathieu Desnoyers 0 siblings, 1 reply; 7+ messages in thread From: Valentin Grigorev @ 2020-03-26 17:39 UTC (permalink / raw) Hello! Currently, callstack collection in LTTng is only available for kernel-space events with context fields *callstack-kernel *and *callstack-user*. Is it expected that callstack collection for LTTng-UST will be added too? And if it is expected, then how soon? Best regards, Valentin Grigorev -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200326/67722664/attachment.htm> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [lttng-dev] LTTng user-space callstacks 2020-03-26 17:39 [lttng-dev] LTTng user-space callstacks Valentin Grigorev @ 2020-03-26 19:41 ` Mathieu Desnoyers 2020-03-26 20:52 ` Milian Wolff 0 siblings, 1 reply; 7+ messages in thread From: Mathieu Desnoyers @ 2020-03-26 19:41 UTC (permalink / raw) ----- On Mar 26, 2020, at 1:39 PM, lttng-dev <lttng-dev at lists.lttng.org> wrote: > Hello! > Currently, callstack collection in LTTng is only available for kernel-space > events with context fields callstack-kernel and callstack-user . > Is it expected that callstack collection for LTTng-UST will be added too? And if > it is expected, then how soon? Hi Valentin, It is something that would be interesting and useful, but a lot of work would be needed to have stack-walking this is fast enough and reentrant wrt signal handlers. Unfortunately, the backtrace(3) functions do not meet those requirements. Also, for gathering user-space callstacks from the kernel tracer, it only works if all user-space is compiled with frame pointers. This is also a limitation that would require a lot of work to overcome neatly. None of those features are currently on any roadmap due to lack of customers showing interest in getting this done. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200326/4cb1a12c/attachment.htm> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [lttng-dev] LTTng user-space callstacks 2020-03-26 19:41 ` Mathieu Desnoyers @ 2020-03-26 20:52 ` Milian Wolff 2020-03-27 13:44 ` Valentin Grigorev 0 siblings, 1 reply; 7+ messages in thread From: Milian Wolff @ 2020-03-26 20:52 UTC (permalink / raw) On Donnerstag, 26. M?rz 2020 20:41:17 CET Mathieu Desnoyers via lttng-dev wrote: > ----- On Mar 26, 2020, at 1:39 PM, lttng-dev <lttng-dev at lists.lttng.org> wrote: > > Hello! > > > > Currently, callstack collection in LTTng is only available for > > kernel-space > > events with context fields callstack-kernel and callstack-user . > > > > Is it expected that callstack collection for LTTng-UST will be added too? > > And if it is expected, then how soon? > > Hi Valentin, > > It is something that would be interesting and useful, but a lot of work > would be needed to have stack-walking this is fast enough and reentrant wrt > signal handlers. Unfortunately, the backtrace(3) functions do not meet > those requirements. > > Also, for gathering user-space callstacks from the kernel tracer, it only > works if all user-space is compiled with frame pointers. This is also a > limitation that would require a lot of work to overcome neatly. > > None of those features are currently on any roadmap due to lack of customers > showing interest in getting this done. libunwind [1] should meet the requirements you need. It is high performance thanks to extensive caching, signal safe and does not rely on frame pointers. [1]: https://github.com/libunwind/libunwind -- Milian Wolff | milian.wolff at kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt, C++ and OpenGL Experts -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3826 bytes Desc: not available URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200326/9c3b8cf4/attachment.bin> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [lttng-dev] LTTng user-space callstacks 2020-03-26 20:52 ` Milian Wolff @ 2020-03-27 13:44 ` Valentin Grigorev 2020-03-27 13:55 ` Mathieu Desnoyers 0 siblings, 1 reply; 7+ messages in thread From: Valentin Grigorev @ 2020-03-27 13:44 UTC (permalink / raw) Yeah, as far as I know, perf [1] is successfully using libunwind to provide callstacks. Probably, LTTng team should think about it too, if there are no serious obstacles. [1]: https://perf.wiki.kernel.org/index.php/Main_Page Best regards, Valentin Grigorev On Thu, Mar 26, 2020 at 11:53 PM Milian Wolff <milian.wolff at kdab.com> wrote: > On Donnerstag, 26. M?rz 2020 20:41:17 CET Mathieu Desnoyers via lttng-dev > wrote: > > ----- On Mar 26, 2020, at 1:39 PM, lttng-dev <lttng-dev at lists.lttng.org> > > wrote: > > > Hello! > > > > > > Currently, callstack collection in LTTng is only available for > > > kernel-space > > > events with context fields callstack-kernel and callstack-user . > > > > > > Is it expected that callstack collection for LTTng-UST will be added > too? > > > And if it is expected, then how soon? > > > > Hi Valentin, > > > > It is something that would be interesting and useful, but a lot of work > > would be needed to have stack-walking this is fast enough and reentrant > wrt > > signal handlers. Unfortunately, the backtrace(3) functions do not meet > > those requirements. > > > > Also, for gathering user-space callstacks from the kernel tracer, it only > > works if all user-space is compiled with frame pointers. This is also a > > limitation that would require a lot of work to overcome neatly. > > > > None of those features are currently on any roadmap due to lack of > customers > > showing interest in getting this done. > > libunwind [1] should meet the requirements you need. It is high > performance > thanks to extensive caching, signal safe and does not rely on frame > pointers. > > [1]: https://github.com/libunwind/libunwind > > -- > Milian Wolff | milian.wolff at kdab.com | Senior Software Engineer > KDAB (Deutschland) GmbH, a KDAB Group company > Tel: +49-30-521325470 > KDAB - The Qt, C++ and OpenGL Experts -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200327/f902fb81/attachment.htm> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [lttng-dev] LTTng user-space callstacks 2020-03-27 13:44 ` Valentin Grigorev @ 2020-03-27 13:55 ` Mathieu Desnoyers 2020-03-27 15:05 ` Valentin Grigorev 2020-03-27 17:18 ` Milian Wolff 0 siblings, 2 replies; 7+ messages in thread From: Mathieu Desnoyers @ 2020-03-27 13:55 UTC (permalink / raw) Last time I checked, the main issue with perf's handling of cases that lack frame pointers is that they grab a ~2-4kB worth of stack data into the trace, and then post-process it with libunwind. This might be OK for sampling use-cases, but is not something I consider appropriate for tracing due to considerably increased use of tracing throughput. Has the situation changed on the perf side ? Thanks, Mathieu ----- On Mar 27, 2020, at 9:44 AM, Valentin Grigorev <valentin.grigorev at jetbrains.com> wrote: > Yeah, as far as I know, perf [1] is successfully using libunwind to provide > callstacks. Probably, LTTng team should think about it too, if there are no > serious obstacles. > [1]: [ https://perf.wiki.kernel.org/index.php/Main_Page | > https://perf.wiki.kernel.org/index.php/Main_Page ] > Best regards, > Valentin Grigorev > On Thu, Mar 26, 2020 at 11:53 PM Milian Wolff < [ mailto:milian.wolff at kdab.com | > milian.wolff at kdab.com ] > wrote: >> On Donnerstag, 26. M?rz 2020 20:41:17 CET Mathieu Desnoyers via lttng-dev >> wrote: >>> ----- On Mar 26, 2020, at 1:39 PM, lttng-dev < [ >> > mailto:lttng-dev at lists.lttng.org | lttng-dev at lists.lttng.org ] > >> wrote: >> > > Hello! >> > > Currently, callstack collection in LTTng is only available for >> > > kernel-space >> > > events with context fields callstack-kernel and callstack-user . >> > > Is it expected that callstack collection for LTTng-UST will be added too? >> > > And if it is expected, then how soon? >> > Hi Valentin, >> > It is something that would be interesting and useful, but a lot of work >> > would be needed to have stack-walking this is fast enough and reentrant wrt >> > signal handlers. Unfortunately, the backtrace(3) functions do not meet >> > those requirements. >> > Also, for gathering user-space callstacks from the kernel tracer, it only >> > works if all user-space is compiled with frame pointers. This is also a >> > limitation that would require a lot of work to overcome neatly. >> > None of those features are currently on any roadmap due to lack of customers >> > showing interest in getting this done. >> libunwind [1] should meet the requirements you need. It is high performance >> thanks to extensive caching, signal safe and does not rely on frame pointers. >> [1]: [ https://github.com/libunwind/libunwind | >> https://github.com/libunwind/libunwind ] >> -- >> Milian Wolff | [ mailto:milian.wolff at kdab.com | milian.wolff at kdab.com ] | Senior >> Software Engineer >> KDAB (Deutschland) GmbH, a KDAB Group company >> Tel: +49-30-521325470 >> KDAB - The Qt, C++ and OpenGL Experts -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200327/3aebbbdb/attachment-0001.htm> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [lttng-dev] LTTng user-space callstacks 2020-03-27 13:55 ` Mathieu Desnoyers @ 2020-03-27 15:05 ` Valentin Grigorev 2020-03-27 17:18 ` Milian Wolff 1 sibling, 0 replies; 7+ messages in thread From: Valentin Grigorev @ 2020-03-27 15:05 UTC (permalink / raw) Hmm, I don't know unfortunately, it should be checked Best regards, Valentin Grigorev On Fri, Mar 27, 2020 at 4:55 PM Mathieu Desnoyers < mathieu.desnoyers at efficios.com> wrote: > Last time I checked, the main issue with perf's handling of cases that > lack frame pointers > is that they grab a ~2-4kB worth of stack data into the trace, and then > post-process it > with libunwind. This might be OK for sampling use-cases, but is not > something I consider > appropriate for tracing due to considerably increased use of tracing > throughput. > > Has the situation changed on the perf side ? > > Thanks, > > Mathieu > > ----- On Mar 27, 2020, at 9:44 AM, Valentin Grigorev < > valentin.grigorev at jetbrains.com> wrote: > > Yeah, as far as I know, perf [1] is successfully using libunwind to > provide callstacks. Probably, LTTng team should think about it too, if > there are no serious obstacles. > > [1]: https://perf.wiki.kernel.org/index.php/Main_Page > > > Best regards, > Valentin Grigorev > > > On Thu, Mar 26, 2020 at 11:53 PM Milian Wolff <milian.wolff at kdab.com> > wrote: > >> On Donnerstag, 26. M?rz 2020 20:41:17 CET Mathieu Desnoyers via lttng-dev >> wrote: >> > ----- On Mar 26, 2020, at 1:39 PM, lttng-dev <lttng-dev at lists.lttng.org> >> >> wrote: >> > > Hello! >> > > >> > > Currently, callstack collection in LTTng is only available for >> > > kernel-space >> > > events with context fields callstack-kernel and callstack-user . >> > > >> > > Is it expected that callstack collection for LTTng-UST will be added >> too? >> > > And if it is expected, then how soon? >> > >> > Hi Valentin, >> > >> > It is something that would be interesting and useful, but a lot of work >> > would be needed to have stack-walking this is fast enough and reentrant >> wrt >> > signal handlers. Unfortunately, the backtrace(3) functions do not meet >> > those requirements. >> > >> > Also, for gathering user-space callstacks from the kernel tracer, it >> only >> > works if all user-space is compiled with frame pointers. This is also a >> > limitation that would require a lot of work to overcome neatly. >> > >> > None of those features are currently on any roadmap due to lack of >> customers >> > showing interest in getting this done. >> >> libunwind [1] should meet the requirements you need. It is high >> performance >> thanks to extensive caching, signal safe and does not rely on frame >> pointers. >> >> [1]: https://github.com/libunwind/libunwind >> >> -- >> Milian Wolff | milian.wolff at kdab.com | Senior Software Engineer >> KDAB (Deutschland) GmbH, a KDAB Group company >> Tel: +49-30-521325470 >> KDAB - The Qt, C++ and OpenGL Experts > > > > -- > Mathieu Desnoyers > EfficiOS Inc. > http://www.efficios.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200327/7165e681/attachment.htm> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [lttng-dev] LTTng user-space callstacks 2020-03-27 13:55 ` Mathieu Desnoyers 2020-03-27 15:05 ` Valentin Grigorev @ 2020-03-27 17:18 ` Milian Wolff 1 sibling, 0 replies; 7+ messages in thread From: Milian Wolff @ 2020-03-27 17:18 UTC (permalink / raw) On Freitag, 27. M?rz 2020 14:55:08 CET Mathieu Desnoyers wrote: > Last time I checked, the main issue with perf's handling of cases that lack > frame pointers is that they grab a ~2-4kB worth of stack data into the > trace, and then post-process it with libunwind. This might be OK for > sampling use-cases, but is not something I consider appropriate for tracing > due to considerably increased use of tracing throughput. > > Has the situation changed on the perf side ? Perf still does this. But heaptrack, of which I'm the main author, uses libunwind to unwind on every heap allocation and it's plenty fast. Obviously the impact is measureable and it's far away from even close to zero overhead. But it's super useful. I guess having that capability in LTTng would be similarly useful and if it's documented to have an overhead people can use it with care. Cheers -- Milian Wolff | milian.wolff at kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt, C++ and OpenGL Experts -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3826 bytes Desc: not available URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200327/11c0a467/attachment.bin> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-03-27 17:18 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-26 17:39 [lttng-dev] LTTng user-space callstacks Valentin Grigorev 2020-03-26 19:41 ` Mathieu Desnoyers 2020-03-26 20:52 ` Milian Wolff 2020-03-27 13:44 ` Valentin Grigorev 2020-03-27 13:55 ` Mathieu Desnoyers 2020-03-27 15:05 ` Valentin Grigorev 2020-03-27 17:18 ` Milian Wolff
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox