[lttng-dev] Is it possible to disable recording the CPU id for USTs?

Kienan Stewart kstewart at efficios.com
Tue Jun 18 10:00:00 EDT 2024


Hi Aditya,

On 6/18/24 8:55 AM, Aditya Kurdunkar via lttng-dev wrote:
> Hello,
> 
> Please bear with me if this is a naive question. I am working on an 
> embedded ARM chip (1GB ram, 2CPUs) where I want to collect trace events 
> for a long duration of time. From the research that I have done (mostly 
> reading papers on LTTng tracing, conference talks and documentation) I 
> have seen it mentioned that for ARM the overhead is greater because the 
> system call to get the CPU is quite slow. In my use case I am okay with 
> not having  this information. The current benchmarks show a 3 
> microsecond overhead of a single tracepoint on ARM in comparison to 

Is there a specific detail that leads you to believe that getcpu is 
taking the bulk of the time?

Are the performance of your embedded arm chip and the x86_64 system you 
are comparing at all similar otherwise?

Regardless I think this comparison may misleading. It sounds like want 
you want to measure is the time + resources required to run your 
application with and without tracing on the same platform, rather than 
comparing two dissimilar platforms?

Please note that the UST overhead (e.g. spawn an application, launch the 
UST thread, connect to the sessiond, transfer configuration and buffer 
pointers) is comparatively large for a single event, rather than over 
the course of a 'long' running application.

The default behaviour is to block main program execution until the 
registration completes or times out. In many cases you may want to 
disable that timeout for quicker startup at the cost of potentially 
losing event(s) right at the beginning. C.f. LTTNG_UST_REGISTER_TIMEOUT 
in https://lttng.org/man/3/lttng-ust/v2.13/#doc-_environment_variables

> 150ns on a x86 machine. Hence, my question is: Is it possible to disable 
> recording the CPU somehow? Any suggestions for decreasing the overhead 
> other than this are welcome.

It is always enabled c.f. 
https://lttng.org/man/3/lttng-ust/v2.13/#doc-_context_information

However, I suppose you could try to use a custom getcpu plugin, e.g. 
https://github.com/lttng/lttng-ust/tree/master/doc/examples/getcpu-override 
to return a dummy value.

If you detailed your tracing and benchmark setup it might be possible to 
provide additional guidance.

> 
> Regards,
> Aditya
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

thanks,
kienan



More information about the lttng-dev mailing list