Changes

Jump to: navigation, search
Example: embedded Linux system equipped with SanDisk SDINBDG4-8G-XI1 eMMC and ext4 file system
Comparative tests performed on the DAVE Embedded Systems “MITO 8M Evaluation Kit” target showed that the <code>ftrace</code> impact compared to the TRACE32-based log solution is considerably higher in several respects. This is understandable, considering that <code>ftrace</code> is a general-purpose trace framework designed to trace many possible events, while the instrumentation required for the TRACE32 log method is specific and limited to the pertinent functions. Moreover, <code>ftrace</code> requires some buffering (ring buffer) and saving data to a target's persistent memory, while the solution based on TRACE32 uses off-chip trace to save the data externally in real-time. The following tables show a comparison between <code>ftrace</code> and the TRACE32 solution.
{| class="wikitable"
|+Table 1: Instrumentation size
! rowspan="2" |Setup
! colspan="2" |vmlinux code size
! colspan="2" |vmlinux data size
! colspan="2" |vmlinux source files
!
!
|-
!Asbolute
[MByte]
!Change w.r.t. the "Clean" setup
[%]
!Absolute
[MByte]
!Change w.r.t. the "Clean" setup
[%]
!#
!Change w.r.t. the "Clean" setup
!instrumentation code size (*)
!instrumentation data size (*)
|-
|Baseline
(no instrumentation)
|12.79
|n/a
|10.78
|n/a
|4640
|n/a
|n/a
|n/a
|-
|TRACE32
|12.79
|0
|10.78
|0
|4640
|0
(41 source code lines in mmc driver)
|372 bytes
|64 bytes
|-
|<code>ftrace</code>
|14.78
|15.6
|11.77
|9
|5476
|836
|1.99 MByte
|0,99MByte + ??MByte ring buffer (**)
|}
(*)    <code>ftrace</code> instrumentation applies to the whole Linux kernel. TRACE32 instrumentation applies to the functions <code>mmc_start_request()</code> and <code>mmc_request_done()</code> only.
vmlinux code sizevmlinux datavmlinux source filesinstrumentation code size (**)instrumentation data    the actual size (*)Clean12,79MB10,78MB4640  TRACE3212,79MB (+0%)10,78MB (+0%)+0 (41 source of the <code lines in mmc driver)+372 byte+64 byte>ftrace14,78MB (+15,6%)11,77MB (+9%)+836 (+18%)+1,99MB+0,99MB + ??MB </code> ring buffer (**) can be configured during runtime but is typically in the 10—100 MByte range .
==== Conclusion ====
4,650
edits

Navigation menu