User Tools

Site Tools


realtime:documentation:howto:debugging:cyclictest-smi-ftrace

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
realtime:documentation:howto:debugging:cyclictest-smi-ftrace [2018/08/02 14:19]
ebugden Add link to main SMI page
realtime:documentation:howto:debugging:cyclictest-smi-ftrace [2018/08/21 10:19]
ebugden [Tracing] Update link
Line 1: Line 1:
 ====== Cyclictest - SMI detection with function tracing ====== ====== Cyclictest - SMI detection with function tracing ======
  
-One way to identify where [[realtime:​documentation:​howto:​debugging:​smi-latency:​start|SMI]]s happen is to look for inexplicably long gaps in a kernel function trace, as these usually indicate that an abnormally long amount of time was spent handling an SMI. [[realtime:​documentation:​howto:​tools:​cyclictest|Cyclictest]] can be used to produce a trace which can then be analyzed to find latencies that could be caused by SMIs. This trace analyzing technique is interesting because it can be used to identify firmware or hardware related latencies on any architecture that supports tracing, not just SMIs on x86 processors.+One way to identify where [[realtime:​documentation:​howto:​debugging:​smi-latency:​start|SMI]]s happen is to look for inexplicably long gaps in a kernel function trace, as these usually indicate that an abnormally long amount of time was spent handling an SMI. [[realtime:​documentation:​howto:​tools:​cyclictest:start|Cyclictest]] can be used to produce a trace which can then be analyzed to find latencies that could be caused by SMIs. This trace analyzing technique is interesting because it can be used to identify firmware or hardware related latencies on any architecture that supports tracing, not just SMIs on x86 processors.
  
-This page explains how to correctly produce a function trace using Cyclictest and how to identify SMI related latencies in the trace. Additional details that clarify some of the topics mentioned more briefly on this page can be found in the general documentation about debugging using Cyclictest [[realtime:​documentation:​howto:​debugging:​cyclictest:​debugging|here]].+This page explains how to correctly produce a function trace using Cyclictest and how to identify SMI related latencies in the trace. Additional details that clarify some of the topics mentioned more briefly on this page can be found in the general documentation about debugging using Cyclictest [[realtime:​documentation:​howto:​tools:​cyclictest:​tracing|here]].
  
 ===== Importance ===== ===== Importance =====
Line 35: Line 35:
 </​WRAP>​ </​WRAP>​
  
-Function tracing slows down the execution of the program, so the target latency will most likely be longer after enabling tracing. It is important to adjust for this additional overhead because otherwise the tracing may not break on the correct latency and the trace may not contain the latency that was supposed to be observed. More details about how to adjust the break trace limit can be found in the documentation about debugging using Cyclictest [[realtime:​documentation:​howto:​debugging:​cyclictest:​debugging#​measuring-the-tracing-overhead|here]].+Function tracing slows down the execution of the program, so the target latency will most likely be longer after enabling tracing. It is important to adjust for this additional overhead because otherwise the tracing may not break on the correct latency and the trace may not contain the latency that was supposed to be observed. More details about how to adjust the break trace limit can be found in the documentation about debugging using Cyclictest [[realtime:​documentation:​howto:​tools:​cyclictest:​tracing#​measuring-the-tracing-overhead|here]].
  
 ===== Analysis ===== ===== Analysis =====