Write Back Routine for JFFS2 Efficient I/O

  • Seung-Ho Lim
  • Sung-Hoon Baek
  • Joo-Young Hwang
  • Kyu-Ho Park
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4096)


When flash memory is used as a storage in embedded systems, block level translation layer is required between conventional filesystem and flash memory chips due to its physical characteristics. A far more efficient use of it is the design of a filesystem itself without no extra layer of translation. However, since flash filesystem does not use block device layer, it cannot utilize deferred I/O although deferred I/O enhances write latency by delaying the flushing jobs. Linux operating system generally uses the write back routine for deferred I/O using kernel thread, which writes back dirty pages and buffers through the block device layer. In this paper, we design and implement efficient I/O for JFFS2 flash filesystem based on flash memory. For this, we first analyze the write procedure of JFFS2 filesystem in detail, and derive the drawback and overhead. Then, we design the flash write back routine for deferred I/O. We apply it to the Linux JFFS2 by implementing fflush and flash_writeback kernel thread. The designed flash write back routine can reduce average write latency when the kernel buffers are enough to get the users data.


Flash Memory Address Space Generic File NAND Flash Page Cache 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Douglis, F., Caceres, R., Kaashoek, F., Li, K., Marsh, B., Tauber, J.A.: Storage alternatives for mobile computers. In: Proc. of the 1st Symposium on Operating Systems Design and Implementation (OSDI), pp. 25–37 (1994)Google Scholar
  2. 2.
    Intel Corporation, Understanding the flash translation layer (FTL) specification,
  3. 3.
    Samsung Electronics Co., NAND Flash Memory & SmartMedia Data Book (2002)Google Scholar
  4. 4.
    Samsung Electronics Co., OneNAND Specification (2005)Google Scholar
  5. 5.
    Memory Technology Device (MTD) subsystem for Linux,
  6. 6.
    Ban, A.: Flash file system. United States Patent, no. 5,404,485 (April 1995)Google Scholar
  7. 7.
    Card, R., Ts’o, T., Tweedie, S.: Design and Implementation of the Second Extended Filesystem. The HyperNews Linux KHG Discussion (1999),
  8. 8.
    Kawaguchi, A., Nishioka, S., Motoda, H.: A Flash-Memory Based File System. In: Usenix Technical Conference (1995)Google Scholar
  9. 9.
    Woodhouse, D.: JFFS: The Journalling Flash File System. In: Ottawa Linux Symposium (2001)Google Scholar
  10. 10.
    Rosenblum, M., Ousterhout, J.K.: The Design and Implementation of a Log-Structured File System. ACM Transactions on Computer Systems 10(1) (1992)Google Scholar
  11. 11.
    Bovet, D.P., Cesati, M.: Understanding the Linux Kernel. O’Reilly, SebastopolGoogle Scholar
  12. 12.
    Texas Instruments Co., OMAP 5912 Startker Kit (OSK),
  13. 13.
    Threaded I/O bench for Linux,

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Seung-Ho Lim
    • 1
  • Sung-Hoon Baek
    • 1
  • Joo-Young Hwang
    • 2
  • Kyu-Ho Park
    • 1
  1. 1.Computer Engineering Research Laboratory, Department of Electrical Engineering and Computer ScienceKorea Advanced Institute of Science and Technology 
  2. 2.Embedded OS Lab., Samsung Electronics 

Personalised recommendations