mtd/fs/jffs3 JFFS3design.tex,1.12,1.13
Artem Bityuckiy
dedekind at infradead.org
Sat Jan 29 06:27:20 EST 2005
Update of /home/cvs/mtd/fs/jffs3
In directory phoenix.infradead.org:/tmp/cvs-serv23051
Modified Files:
JFFS3design.tex
Log Message:
Update.
Index: JFFS3design.tex
===================================================================
RCS file: /home/cvs/mtd/fs/jffs3/JFFS3design.tex,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- JFFS3design.tex 27 Jan 2005 19:10:52 -0000 1.12
+++ JFFS3design.tex 29 Jan 2005 11:27:16 -0000 1.13
@@ -10,6 +10,7 @@
\usepackage{longtable}
\usepackage{hyperref}
\usepackage{html}
+\sloppy
\begin{document}
@@ -84,6 +85,14 @@
The minimal flash erasable unit.
\\[4pt]
+\raggedright \emph{Bad block}
+&
+NAND flashes may be shipped with bad blocks. These blocks are marked
+bad and must not be never used or erased. The technology also implies
+that new bad blocks may appear during the flash's life cycle. These blocks
+may be marked bad too. See \ref{ref_ToshibaNAND} for more details.
+\\[4pt]
+
\raggedright \emph{Eblock}
&
JFFS3 may treat several sectors as one eblock. Thus, the minimal
@@ -186,6 +195,12 @@
errors cased by unclean reboots. There is another mechanism exists for
this purpose (see section \ref{ref_sec_unclean_reboot}).
+JFFS2 prints the CRC error message to the system log on every CRC error found.
+In syctems, where unclean reboots happen very often, this is very
+annoying. JFFS3 should be implemented such a way that it does not print
+the warning messages if the found checksum error is due to unclean
+reboot.
+
%
% Checksum modes
%
@@ -229,6 +244,34 @@
not fully written.
%
+% Behaviour in case of checksum errors
+%
+\subsection{Behaviour in case of checksum errors}
+The common JFFS2 behaviour if the media corruption has been detected,
+is marking the file system
+with a kind of "corruptred" flag and rejecting to
+perform any IO operations with this inode. But there should a
+possibility to clean this flag and to force JFFS3 to ignore the
+corrupted nodes.
+
+If the checsum error is due to unclean reboot, the partially written
+nodes are just ignored.
+
+%
+% Marking blocks bad
+%
+\subsection{Marking blocks bad}
+In case of NAND or AG-AND flashes, flash blocks may become bad and may
+be marked bad. Bad blocks are not used anymore.
+
+According to \ref{ref_ToshibaNAND} the general method of bad blocks
+detection is the errors when writing or erasing blocks.
+
+If the write error has been detected, JFFS3 moves all data from
+this eblock to another eblock. Then the bogus block is erased. If the
+erase error has been detected, block is marked bad.
+
+%
% Checksum algorithm
%
\subsection{Checksum algorithm}
@@ -280,12 +323,29 @@
generated nor checked.\\
\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011640.html}.
+\item Have special type of notes where we may store static inode node's
+(and may be other's) attributes like UID and GID. Perhaps, the xattr
+support may be used here.\\
+\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011615.html}.
+
+\item Implement xattr support. There are a lot of cases when having it
+would be very handy.\\
+\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011617.html}\\
+\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011632.html}\\
+\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011644.html}\\
+\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011556.html}
+
+\item Make compression selectable ber file.\\
+\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011641.html}
+
\item Have the end majic bitmask on all note types in order to be able
to quickly detect the partially written nodes.\\
\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011529.html}.
\item Increase the maximum node size. We may keep several pages in one node.
-This leads to better compression and less memory consumption.\\
+This leads to better compression and less memory consumption. Ise
+zisofs-like technique when reading the node with several pages of data
+(compressed).\\
\url{http://lists.infradead.org/pipermail/linux-mtd/2005-January/011672.html}\\
and following.
@@ -303,11 +363,15 @@
\begin{enumerate}
\item \raggedright \label{ref_MTD}
Memory Technology Device (MTD) Subsystem for Linux,\\
-\url{http://www.linux-mtd.infradead.org}.
+\url{www.linux-mtd.infradead.org}.
\item \raggedright \label{ref_GormanVM}
Mel Gorman, Linux VM Documentation,\\
-\url{http://www.csn.ul.ie/~mel/projects/vm}
+\url{www.csn.ul.ie/~mel/projects/vm}
+
+\item \raggedright \label{ref_ToshibaNAND}
+Toshiba NAND Flash Applications Design Guide,\\
+www.semicon.toshiba.co.jp/eng/prd/memory/doc/pdf/\\nand\_applicationguide\_e.pdf
\end{enumerate}
\end{document}
More information about the linux-mtd-cvs
mailing list