fs consistency and coherency


author

AuthorVersion
Qu Fuping ( qufuping-at-ercist.iscas.ac.cn )
Zhang Nan ( madsys-at-ercist.iscas.ac.cn )
1.1.1

target

file system.

invalidity

File system may not handle hardware failure properly.

symptom

When hardware failure occurs, file system may not return the correct result ( e.g. EIO ) at the right time ( e.g. at the next disk I/O related syscalls which are called later).

detection strategy

We need a USB storage device to make the test.

Make file system in the USB disk, do I/O related opeartions in this file system. With each opeartion, pause for a specified inteval, default is 3 seconds. During the inteval, unplug the USB wire to see the reaction of file system. The right result should be EIO at the next disk I/O syscall. Run the test code with EXT2, EXT3, JFS, XFS, ReiserFS; for EXT3, try possible data/journal combinations.

comment from author

  1. run the test under runlevel 1 to avoid haldeamon running automatically.
  2. unplug points should cover two loops at least to consider the buffer effect.
  3. if there is no error returned in the next syscall after the unplug operation, waiting for 3 more loops; if there is still no error, we assume no error returned.
  4. if the inteval value and mount options are set to other values, the result will vary.

tools

fs_cons_coh-1.1.1

measurement results

Measurement result are now here .

Documents

history

version date author
log
1.1.1 2005/06/29 Qu Fuping
  1. fix a small bug of main-readv.c
1.1.0 2005/05/31 Qu Fuping
  1. Remove stat(2) in main-read.c main-readv.c mmap_read.c to reduce side-effect.
  2. Add fsync(2) after msync(2)(with MS_ASYNC flag) in mmap_async.c. In kernel source code, it claims no warranty without fsync(2).
  3. Remove some unused variables in mmap_sync.c and mmap_async.c
  4. Add mmap_read_middle.c mmap_sync_middle.c mmap_async_middle.c. We notice different result with different access area.
1.0.2 2005/05/21 Qu Fuping
Add automake support
1.0.1 2005/05/17 Qu Fuping
fs_cons_coh-1.0.1.tar.gz fixes some bugs, including:
Makefile:
extra object dependency bug-fix.
main-fdatasync_writev.c:
display "fsync" instead of "fdatasync" bug-fix.
1.0.0 2005/04/18 Qu Fuping
First version.