IoT 15(4): e1

Research Article

A Tracing Toolset for Embedded Linux Flash File Systems

Download1133 downloads
  • @ARTICLE{10.4108/icst.valuetools.2014.258179,
        author={Pierre Olivier and Jalil Boukhobza and Eric Senn and Mathieu Soula and Michelle Le Grand and Ismat Chaib Draa},
        title={A Tracing Toolset for Embedded Linux Flash File Systems},
        journal={EAI Endorsed Transactions on Internet of Things},
        volume={1},
        number={4},
        publisher={EAI},
        journal_a={IOT},
        year={2015},
        month={2},
        keywords={nand flash memory, flash file systems, monitoring},
        doi={10.4108/icst.valuetools.2014.258179}
    }
    
  • Pierre Olivier
    Jalil Boukhobza
    Eric Senn
    Mathieu Soula
    Michelle Le Grand
    Ismat Chaib Draa
    Year: 2015
    A Tracing Toolset for Embedded Linux Flash File Systems
    IOT
    EAI
    DOI: 10.4108/icst.valuetools.2014.258179
Pierre Olivier1,*, Jalil Boukhobza1, Eric Senn2, Mathieu Soula1, Michelle Le Grand1, Ismat Chaib Draa1
  • 1: Université de Bretagne Occidentale
  • 2: Université de Bretagne Sud
*Contact email: pierre.olivier@univ-brest.fr

Abstract

NAND flash memory integration in the traditional I/O software stack of Unix-like operating systems (OS) was achieved without modifying most of the OS layers. In fact, one can dissociate two categories of flash memory devices: (1) those which intricacies are abstracted to the OS (e.g. SSDs, USB sticks), and (2) raw flash memory chips driven by a specific Flash File System (FFS) such as JFFS2 and UBIFS. In the latter case, the operating system I/O software stack low level layers (i.e. file system and driver) were upgraded while the higher levels (virtual file system and related buffers) were not. In order to optimize the system behavior in such a case, one must understand the interactions between the different I/O software management layers, and the performance impact of each layer for a given I/O workload. For this sake, we developed a tracing toolset allowing to understand the impact of each layer on the I/O request flow, for instance: caching, overheads, and fragmentation. The developed framework proved to be precious to apprehend the interactions between OS flash specific layers and traditional layers for a better system performance understanding.