Changes

Jump to: navigation, search

MISC-TN-017: Persistent storage and read-write file systems

1,209 bytes added, 15:25, 19 January 2022
Results and comparison with the software-based method (ftrace)
The functions average duration analysis of eMMC accesses highlights the greater weight required by <code>ftrace</code>. Additional, detailed charts are shown in the following section. They allow to determine that using <code>ftrace</code> also involves a greater dispersion of the execution times compared to both the kernel without <code>ftrace</code> and the kernel instrumented only with the code for TRACE32. In particular, the functions <code>mmc_start_request()</code> and <code>mmc_request_done()</code> have a few microseconds constant execution time without <code>ftrace</code>, and show a very variable execution time with <code>ftrace</code>, with a maximum time up to 279 us and 285 us respectively.
 
In conclusion, the hardware method based on TRACE32 provides the same log data as recorded by <code>ftrace</code> but with minimal changes to the kernel (a few lines in a file) and a tiny time penalty. It also does not use any additional memory (in terms of RAM and file system storage) and allows for extremely long measurement times.
 
The following table summarizes the advantages and disadvantages of the two considered solutions: TRACE32 vs <code>ftrace</code>.
{| class="wikitable"
|+Table 3: Pros and cons
!Method
!Pros
!Cons
|-
|TRACE32
|
* Light kernel instrumentation
* No additional memory required
* Long-term analysis (few hours up to over 100 days)
* Can be ported to other OS's / eMMC device drivers.
|
* Hardware-based solution: requires a debug and trace tool + offchip-trace capable processor and target
|-
|<code>ftrace</code>
|
* Software-based solution
|
* Available for Linux kernel only
* Heavy kernel instrumentation
* Time intrusion in eMMC operations
* Kernel program and data size increase
* 10—100 MB of RAM required for ring buffer
* Additional storage device to save the ring buffer
* For each eMMC operation, <code>ftrace</code> saves roughly 876 bytes of log information.
|}
===== Detailed time analysis =====
4,650
edits

Navigation menu