yaffs2.git
9 years agoyaffs Add function to get number of open handles
Charles Manning [Fri, 17 Sep 2010 02:28:14 +0000 (14:28 +1200)]
yaffs Add function to get number of open handles

This is not a POSIX function.

Useful for checking if the object is in use.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Clean up test scripts a bit
Charles Manning [Thu, 9 Sep 2010 21:38:24 +0000 (09:38 +1200)]
yaffs Clean up test scripts a bit

Remove some bashisms.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Compilation clean ups
Charles Manning [Wed, 8 Sep 2010 23:35:09 +0000 (11:35 +1200)]
yaffs Compilation clean ups

Tighten compilation flags and clean up. More to follow...

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Cache object xattrib state.
Charles Manning [Wed, 8 Sep 2010 21:20:23 +0000 (09:20 +1200)]
yaffs: Cache object xattrib state.

We cache whether or not an object has xattributes.

This is done to get around the problem of the Linux VFS trying to check security
capabilities on every write. Assuming that most files don't have security
attributes, this code will save on a huge amount of reads and make writing
faster.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoMerge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
Charles Manning [Fri, 3 Sep 2010 04:11:52 +0000 (16:11 +1200)]
Merge branch 'master' of ssh://aleph1.co.uk/home/aleph1/git/yaffs2

9 years agoyaffs Change file Linux vfs truncation to new mechanism
Charles Manning [Fri, 3 Sep 2010 02:12:20 +0000 (14:12 +1200)]
yaffs Change file Linux vfs truncation to new mechanism

This is cleaner for 2.6.36 etc.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Add stats tracking and control for background gc instrumentation
Charles Manning [Fri, 3 Sep 2010 02:05:49 +0000 (14:05 +1200)]
yaffs Add stats tracking and control for background gc instrumentation

This allows us to track the impact of background gc.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Better explanation in patch-ker.sh
Charles Manning [Thu, 2 Sep 2010 23:35:45 +0000 (11:35 +1200)]
yaffs: Better explanation in patch-ker.sh

If the tree already contains yaffs then we don't delete it.

We now give a better explanation of what to do.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Add a Linux write test
Charles Manning [Tue, 24 Aug 2010 05:08:39 +0000 (17:08 +1200)]
yaffs Add a Linux write test

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix problem trying to mkdir a mountpt in yaffs direct
Charles Manning [Mon, 23 Aug 2010 22:12:15 +0000 (10:12 +1200)]
yaffs Fix problem trying to mkdir a mountpt in yaffs direct

yaffs_mkdir would create a directory if you passed the name of
a mount point. This change fails such attempts with -EEXIST.

tested with:
"yaffs2"
"/yaffs2"
"/yaffs2/"
"/yaffs2///////"
"yaffs2////"

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Add yaffs direct code for tracking flash traffic
Charles Manning [Thu, 19 Aug 2010 23:56:12 +0000 (11:56 +1200)]
yaffs: Add yaffs direct code for tracking flash traffic

Helps for accessing gc overheads.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Tweak gc parameters
Charles Manning [Thu, 19 Aug 2010 04:00:15 +0000 (16:00 +1200)]
yaffs   Tweak gc parameters

This will reduce unnecessary garbace collection by limiting in-thread garbage
collection to when the garbage > 3/4 of the free space.

This should push more gc into background and make the write path faster.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Add gc block counter
Charles Manning [Wed, 18 Aug 2010 00:47:29 +0000 (12:47 +1200)]
yaffs  Add gc block counter

Extra stats for counting how many blocks get selected for gc.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Handle init_timer properly for older kernels
Charles Manning [Wed, 18 Aug 2010 00:44:23 +0000 (12:44 +1200)]
yaffs Handle init_timer properly for older kernels

Use init_timer for older kernels and init_timer_on_stack for newer
kernels.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Compile with Linux 2.6.36
Charles Manning [Mon, 16 Aug 2010 05:35:36 +0000 (17:35 +1200)]
yaffs: Compile with Linux 2.6.36

There have been some changes with how setattr works and changing
clear/delete inode to the new evict_inode.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Mark superblock dirty on writes
Charles Manning [Sun, 15 Aug 2010 22:25:51 +0000 (10:25 +1200)]
yaffs  Mark superblock dirty on writes

Previosly superblock dirtying only happened on writes to NAND. This was
not sufficient to ensure that small cached writes would be written out
by a sync. This could cause data loss in a loop-mounted device.

We now also mark all Linux writes as dirty.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Clean up some yaffs1 related comments and messages
Charles Manning [Sun, 15 Aug 2010 22:07:57 +0000 (10:07 +1200)]
yaffs  Clean up some yaffs1 related comments and messages

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Skip checkpoint writing if mounted readonly
Charles Manning [Tue, 10 Aug 2010 00:43:52 +0000 (12:43 +1200)]
yaffs: Skip checkpoint writing if mounted readonly

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Batter read-only support handling
Charles Manning [Tue, 10 Aug 2010 00:38:32 +0000 (12:38 +1200)]
yaffs: Batter read-only support handling

Check read only flags in both the mount flags and mtd flags.

If the mount is read only then don't do some clean ups or start the
background gc thread.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Fix return value for yaffs direct sync
Charles Manning [Mon, 9 Aug 2010 22:06:45 +0000 (10:06 +1200)]
yaffs: Fix return value for yaffs direct sync

Yaffs Direct sync was returning -1 regardless of sync result.
Now returns 0 if sync was done.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Add new follow link code for 2.6.34 support
Charles Manning [Mon, 9 Aug 2010 21:49:23 +0000 (09:49 +1200)]
yaffs: Add new follow link code for 2.6.34 support

Fixes problem caused by change in follow link semantics.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix yaffs1 soft delete issue
Charles Manning [Mon, 9 Aug 2010 21:09:41 +0000 (09:09 +1200)]
yaffs  Fix yaffs1 soft delete issue

In some corner cases soft deletion could cause NAND to leak and show
up in lost and found.

This only impacts yaffs1 mode.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Changes to direct tests
Charles Manning [Sat, 7 Aug 2010 04:30:20 +0000 (16:30 +1200)]
yaffs  Changes to direct tests

Add test for lost+found being empty.
Make fuzzer less verbose
Allow changing of iteration count for simulated power fail testing.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Get fuzz tester to run further
Charles Manning [Wed, 4 Aug 2010 02:51:06 +0000 (14:51 +1200)]
yaffs Get fuzz tester to run further

During fuzz testing we allow tests to run even if integrity errors happen. This
allows the fuzz test to check for more complex cases.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Fix issues kicked up by fuzz testing
Charles Manning [Wed, 4 Aug 2010 02:04:13 +0000 (14:04 +1200)]
yaffs: Fix issues kicked up by fuzz testing

Some more problems kicked up by fuzz testing:
* Further verification of chunk tags.
* If loading details for root dir or lost+found then don't change the
*  variant type since we know they are directories.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Implement phase 1 fuzz testing.
Charles Manning [Fri, 2 Jul 2010 04:46:47 +0000 (16:46 +1200)]
yaffs Implement phase 1 fuzz testing.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Update RAM simulator to support start and end blocks
Charles Manning [Wed, 4 Aug 2010 00:09:58 +0000 (12:09 +1200)]
yaffs Update RAM simulator to support start and end blocks

This makes it more versatile for simulation of different usage patterns.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Fix AutoUnicode handling
Charles Manning [Wed, 4 Aug 2010 00:08:28 +0000 (12:08 +1200)]
yaffs: Fix AutoUnicode handling

Call the correct function to process auto unicode.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix yaffs direct creating opening files with no name
Charles Manning [Fri, 30 Jul 2010 01:53:10 +0000 (13:53 +1200)]
yaffs Fix yaffs direct creating opening files with no name

Opening a file with a name that was a directory would create a
file named "" within that directory.

This is now fixed. The call fails.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Add another test to basic tests
Charles Manning [Fri, 30 Jul 2010 01:52:14 +0000 (13:52 +1200)]
yaffs Add another test to basic tests

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Keep unused linux alloactor code up to date
Charles Manning [Thu, 29 Jul 2010 04:46:26 +0000 (16:46 +1200)]
yaffs Keep unused linux alloactor code up to date

We're not using this, but let's keep it compiling anyway.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix in-kernel makefile to use correct allocator
Charles Manning [Thu, 29 Jul 2010 00:45:33 +0000 (12:45 +1200)]
yaffs Fix in-kernel makefile to use correct allocator

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix xattrib headers for use with unicode
Charles Manning [Thu, 22 Jul 2010 00:45:52 +0000 (12:45 +1200)]
yaffs Fix xattrib headers for use with unicode

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Move yaffscfg.h to where it should be
Charles Manning [Thu, 22 Jul 2010 00:26:01 +0000 (12:26 +1200)]
yaffs Move yaffscfg.h to where it should be

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Clean up WinCE compilation issues
Charles Manning [Thu, 22 Jul 2010 00:13:33 +0000 (12:13 +1200)]
yaffs Clean up WinCE compilation issues

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Make directory for extracting common wince files
Charles Manning [Wed, 21 Jul 2010 22:40:15 +0000 (10:40 +1200)]
yaffs Make directory for extracting common wince files

This helps to shift files to WinCE portts.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Add Makefile to create symlinks
Charles Manning [Wed, 21 Jul 2010 03:31:54 +0000 (15:31 +1200)]
yaffs Add Makefile to create symlinks

This makes it easy to get all the yaffs drect files + symlinks.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Refactor yaffs direct device list management, add nand abstraction, divide...
Charles Manning [Wed, 21 Jul 2010 03:23:56 +0000 (15:23 +1200)]
yaffs Refactor yaffs direct device list management, add nand abstraction, divide up test code

This all makes for a far cleaner layout of test code.

The new yaffs direct list management allows partitions to be added synamically rather than
statically. This is better for OSs that install partitions at runtime (eg. WInCE).

The nand abstraction makes it tidier to add a new nand driver to yaffs direct and test code.

The test code has been repartitioned to make porting and file management cleaner.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix scan problem for corrupted tags
Charles Manning [Thu, 1 Jul 2010 22:33:26 +0000 (10:33 +1200)]
yaffs Fix scan problem for corrupted tags

Check that the tags are within reasonable bounds. Without this, subsequent
checks can fail causing a mount failure.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Refactorisation first phase
Charles Manning [Thu, 1 Jul 2010 04:14:01 +0000 (16:14 +1200)]
yaffs Refactorisation first phase

Partitoning code. More to happen.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Reactoring WIP
Charles Manning [Wed, 30 Jun 2010 04:06:45 +0000 (16:06 +1200)]
yaffs Reactoring WIP

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Refactor yaffs1 and yaffs2 specific code. WIP
Charles Manning [Wed, 30 Jun 2010 00:04:01 +0000 (12:04 +1200)]
yaffs Refactor yaffs1 and yaffs2 specific code. WIP

This will keep yaffs1 vs yaffs2 code cleaner and allow unused code to
be left out.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix xattr error codes
Charles Manning [Thu, 1 Jul 2010 01:41:16 +0000 (13:41 +1200)]
yaffs  Fix xattr error codes

There were some incorrect error codes.
Now returns
ENODATA if an object does not have the requested xattr.
ERANGE if the buffer is too small to accept the requested xattr.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix readdir locking
Charles Manning [Thu, 1 Jul 2010 00:25:59 +0000 (12:25 +1200)]
yaffs Fix readdir locking

yaffs_EndSearch() should have been called with yaffs locked.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoMerge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
Charles Manning [Wed, 30 Jun 2010 00:07:01 +0000 (12:07 +1200)]
Merge branch 'master' of ssh://aleph1.co.uk/home/aleph1/git/yaffs2

9 years agoyaffs Add .gitignore
Charles Manning [Wed, 30 Jun 2010 00:02:21 +0000 (12:02 +1200)]
yaffs Add .gitignore

Add .gitignore

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs direct: Fix yaffs direct offset handling for pwrite
Charles Manning [Thu, 24 Jun 2010 21:45:43 +0000 (09:45 +1200)]
yaffs direct: Fix yaffs direct offset handling for pwrite

Note that if the handle is opened with O_APPEND then the pwrite() offset
is ignored and the write appends.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Change timer init call to init_timer_on_stack
Charles Manning [Thu, 17 Jun 2010 05:51:33 +0000 (17:51 +1200)]
yaffs: Change timer init call to init_timer_on_stack

This call is more debug friendly and does not trigger certain kernel warmings.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Clean up unused variable
Charles Manning [Thu, 17 Jun 2010 03:57:47 +0000 (15:57 +1200)]
yaffs: Clean up unused variable

Remove warning.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Change yaffs_sync_object prototype for new 2.6.35 VFS interface
Charles Manning [Thu, 17 Jun 2010 03:55:13 +0000 (15:55 +1200)]
yaffs: Change yaffs_sync_object prototype for new 2.6.35 VFS interface

The sync interface changed, we change too...

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Fix up xattrib flag names
Charles Manning [Mon, 14 Jun 2010 08:38:28 +0000 (20:38 +1200)]
yaffs: Fix up xattrib flag names

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Remove own qsort from Linux build
Charles Manning [Fri, 11 Jun 2010 01:54:51 +0000 (13:54 +1200)]
yaffs: Remove own qsort from Linux build

Use Linux's built in sorter.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Refactor allocator
Charles Manning [Tue, 8 Jun 2010 23:04:34 +0000 (11:04 +1200)]
yaffs: Refactor allocator

Refactoring the allocator allows alternate allocators to be switched in more easily

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Fix yaffsfs xattr error handling, add yaffs_lsetxattr and friends
Charles Manning [Sun, 13 Jun 2010 23:33:54 +0000 (11:33 +1200)]
yaffs: Fix yaffsfs xattr error handling, add yaffs_lsetxattr and friends

Error codes were not being handled correctly.
yaffs_lsetxattr, yaffs_lgetxattr, yaffs_lremovexattr, yaffs_llistxattr.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Improve xattrib to not modify if there is no space
Charles Manning [Fri, 11 Jun 2010 01:57:10 +0000 (13:57 +1200)]
yaffs: Improve xattrib to not modify if there is no space

Previously replacing an xattrib with a larger one that could not fit
would result in the original xattrib being deleted.

We now only replace an xattrib if there is space to do so.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Add xattrib file to in-kernel Makefile
Charles Manning [Wed, 9 Jun 2010 23:38:25 +0000 (11:38 +1200)]
yaffs: Add xattrib file to in-kernel Makefile

First xattrib checkin missed this change.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Add xattrib support
Charles Manning [Tue, 8 Jun 2010 03:46:58 +0000 (15:46 +1200)]
yaffs: Add xattrib support

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Clean up yaffs direct configuration
Charles Manning [Fri, 28 May 2010 04:30:43 +0000 (16:30 +1200)]
yaffs: Clean up yaffs direct configuration

Clean up some stale comments.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Add python test for O_EXCL
Charles Manning [Wed, 19 May 2010 00:46:51 +0000 (12:46 +1200)]
yaffs: Add python test for O_EXCL

Check that OEXCL really works according to what's on the box.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Clean up comments in direct/yaffsfs.c
Charles Manning [Wed, 19 May 2010 00:31:50 +0000 (12:31 +1200)]
yaffs: Clean up comments in direct/yaffsfs.c

Get rid of C++ style comments

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix the interpretation of O_EXCL
Charles Manning [Tue, 18 May 2010 23:09:42 +0000 (11:09 +1200)]
yaffs Fix the interpretation of O_EXCL

O_EXCL does not mean openinging for exclusive access.

O_EXCL only has meaning with O_CREAT. It means only create file if
it does not exist.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Tweaks to stress test
Charles Manning [Tue, 18 May 2010 22:20:14 +0000 (10:20 +1200)]
yaffs Tweaks to stress test

Add/remove  directories to increase coverage.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Tweak tests to use log files
Charles Manning [Sun, 16 May 2010 23:02:42 +0000 (11:02 +1200)]
yaffs: Tweak tests to use log files

This runs faster than spewing onto a terminal.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Fix incorrect handling of deletion flag
Charles Manning [Thu, 13 May 2010 02:29:16 +0000 (14:29 +1200)]
yaffs Fix incorrect handling of deletion flag

Move the reading of the deleted flag so that it picks up any changes.

Notw we need a value on the stack because the object might get
freed and we don't want to access a hanging pointer.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Add another test script
Charles Manning [Fri, 7 May 2010 03:24:51 +0000 (15:24 +1200)]
yaffs Add another test script

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoMerge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
Charles Manning [Thu, 6 May 2010 22:08:22 +0000 (10:08 +1200)]
Merge branch 'master' of ssh://aleph1.co.uk/home/aleph1/git/yaffs2

9 years agoyaffs Move docs to other repository
Charles Manning [Thu, 6 May 2010 22:06:24 +0000 (10:06 +1200)]
yaffs Move docs to other repository

9 years agoyaffs Clean up exit from plot script
Charles Manning [Sun, 2 May 2010 21:56:20 +0000 (09:56 +1200)]
yaffs Clean up exit from plot script

The plot script now cleans up properly after a control-C.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Add yaffs direct pdf
Charles Manning [Thu, 29 Apr 2010 21:10:26 +0000 (09:10 +1200)]
yaffs: Add yaffs direct pdf

Makes it easier for users to access docs.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Improve debug chunk erased checking, change refreshPeriod
Charles Manning [Thu, 29 Apr 2010 01:40:28 +0000 (13:40 +1200)]
yaffs: Improve debug chunk erased checking, change refreshPeriod

Normalise macro to YAFFS_CONFIG_ALWAYS_CHECK_CHUNK_ERASED.
This reduces performance so output kernel message warning this is enabled.

Change refreshPeriod to make it much slower.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Add dump_stack() to YBUG to give more info.
Charles Manning [Thu, 29 Apr 2010 01:39:16 +0000 (13:39 +1200)]
yaffs: Add dump_stack() to YBUG to give more info.

This adds more info for debugging.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Clean up compilation warning
Charles Manning [Thu, 29 Apr 2010 01:35:30 +0000 (13:35 +1200)]
yaffs Clean up compilation warning

Don't compile unused functions.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Don't do checkpoint for small partitions.
Charles Manning [Wed, 28 Apr 2010 00:57:45 +0000 (12:57 +1200)]
yaffs: Don't do checkpoint for small partitions.

On very small partitions a checkpoint is pointless and wastes space.
For less than 60 blocks we don't try making a checkpoint.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Speed up test script
Charles Manning [Tue, 27 Apr 2010 20:38:44 +0000 (08:38 +1200)]
yaffs: Speed up test script

Set tracing to zero so that test script runs faster

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Integrate Android tree differences
Charles Manning [Tue, 27 Apr 2010 02:06:38 +0000 (14:06 +1200)]
yaffs: Integrate Android tree differences

This brings in Android changes, and a few more clean-ups to normalise with the
Android tree.

More to follow maybe.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Change name of /proc/yaffs_stats
Charles Manning [Tue, 27 Apr 2010 02:05:19 +0000 (14:05 +1200)]
yaffs: Change name of /proc/yaffs_stats

name was not updated in plotter script.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Tweak test scripts
Charles Manning [Mon, 26 Apr 2010 23:44:21 +0000 (11:44 +1200)]
yaffs: Tweak test scripts
Minor change so that the script sleeps and does not just exit.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Changes to test scripts
Charles Manning [Thu, 22 Apr 2010 01:27:28 +0000 (13:27 +1200)]
yaffs: Changes to test scripts

Add mount_cycling script.

Change /proc/yaffs_debug references to /proc/yaffs_stats.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs Some cleanups.
Charles Manning [Tue, 20 Apr 2010 05:12:46 +0000 (17:12 +1200)]
yaffs Some cleanups.

Update copyright messages.
Clean up tracing to use TSTR and KERN_DEBUG.
Remove cvs $Id.
Change /proc/yaffs_debug to /proc/yaffs_stats.
... and a few other clean ups.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Rationalise plot_data.sh
Charles Manning [Mon, 26 Apr 2010 02:35:21 +0000 (14:35 +1200)]
yaffs: Rationalise plot_data.sh

plot_data.sh now includes all the scripting required to do the plotting.
No longer uses seperate scripts to gather data and drive gnu-plot.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Clean up 64-bit compilation
Charles Manning [Mon, 26 Apr 2010 01:31:33 +0000 (13:31 +1200)]
yaffs: Clean up 64-bit compilation

Change format fields to work properly with 64-bit compilation.

Change name of background thread to get rid of pointer calculations.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs: Change trace flag for partially written blocks
Charles Manning [Sun, 25 Apr 2010 23:20:03 +0000 (11:20 +1200)]
yaffs: Change trace flag for partially written blocks

This was YAFFS_TRACE_ALWAYS which generated a lot of pointless tracing.
Switched to YAFFS_TRACE_SCAN.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoAdding HowYaffsWorks.pdf for users
jenny [Tue, 20 Apr 2010 10:16:26 +0000 (11:16 +0100)]
Adding HowYaffsWorks.pdf for users

Signed-off-by: jenny <jenny@basil.follybridge>
9 years agoyaffs: More background gc tweaks.
Charles Manning [Tue, 20 Apr 2010 02:36:01 +0000 (14:36 +1200)]
yaffs: More background gc tweaks.

Slight changes to urgency thresholds

Fix problem where background gc was interfering with sync resulting in
checkpoints being lost.

Add more tracing for background gc.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoyaffs New background garbage collector and related tweaks
Charles Manning [Fri, 16 Apr 2010 03:39:16 +0000 (15:39 +1200)]
yaffs New background garbage collector and related tweaks

This commit
- introduces the yaffs background garbage collection feature
- tweaks the foregound garbage collection to do less work
- changes the way auto-checkpointing works
- tweaks the block refreshing logic.

The aim of the background garbage collector is to do at least some of the
garbage collection in the background so that writing operations will not have
to do as much garbage collection which should make writes faster. The amount of
background garbage collection is controlled by the ratio between the amount of
erased space vs the amount of free space:
* If less than quarter of free space is erased, then background gc is frequent.
* Else if less than a half of the free space is erased, then background gc is
still done reasonably frequently.
* else (at least half of the free space is erased) the background gc is done
infrequently.

Background gc is not attempted if the partition is checkpointed since that would
invalidate the checkpoint.

The auto-checkpointing feature has changed slightly. If the yaffs_auto_checkpoint
value is set to 1 or 2 then the auto checkpointing will be blocked if the erased
space is less than half the free space (ie. the auto-checkpointing is blocked to
allow background gc to progress). Oring in 4 into the yaffs_auto_checkpoint will
do a one-shot override, forcing a checkpoint and suspending background gc until
the partition is dirtied by a write, erase etc.

The block refreshing control has been changed. The dev->param.refreshPeriod now
controls how many blocks are garbage collected before another refresh is performed.
Values around 1000 probably make the best sense.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agowork in progress
Charles Manning [Fri, 16 Apr 2010 00:13:27 +0000 (12:13 +1200)]
work in progress

9 years agoTweak nfs support
Charles Manning [Tue, 13 Apr 2010 23:24:26 +0000 (11:24 +1200)]
Tweak nfs support

Fix problem that caused a regression in busybox rm on directories
with many files.

Limit the feature to only compile with more recent kernels that have
all the required features.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoAdd one-shot feature for yaffs auto checkpointing.
Charles Manning [Mon, 12 Apr 2010 04:55:22 +0000 (16:55 +1200)]
Add one-shot feature for yaffs auto checkpointing.

This feature is enabling by ORing in 0x04 to the yaffs_auto_checkpoint
module parameter. This will do a one-shot checkpoint on the next sync and
the bit will then be reset.

This is a nice way to force a checkpoint on the next sync. eg.
echo 6 > /sys/modules/yaffs/parameters/yaffs_auto_checkpoint
sync
yaffs_auto_checkpoint will now be 2

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoTweaks to YaffsTuning doc.
Charles Manning [Tue, 6 Apr 2010 04:57:10 +0000 (16:57 +1200)]
Tweaks to YaffsTuning doc.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoAdd nfs support.
Charles Manning [Tue, 30 Mar 2010 01:42:21 +0000 (14:42 +1300)]
Add nfs support.
This is a modified version of the patch suplied by
Jean-Loup Sabatier

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoAdd more test code.
Charles Manning [Tue, 30 Mar 2010 01:35:05 +0000 (14:35 +1300)]
Add more test code.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoMerge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
Charles Manning [Thu, 25 Mar 2010 03:09:21 +0000 (16:09 +1300)]
Merge branch 'master' of ssh://aleph1.co.uk/home/aleph1/git/yaffs2

9 years agoAdd more test scripts to automate running tests.
Charles Manning [Thu, 25 Mar 2010 00:48:41 +0000 (13:48 +1300)]
Add more test scripts to automate running tests.

9 years agoAdd more test scripts to automate running tests.
Charles Manning [Thu, 25 Mar 2010 00:48:41 +0000 (13:48 +1300)]
Add more test scripts to automate running tests.

9 years agoRe-enable soft delete for yaffs1 mode.
Charles Manning [Fri, 19 Mar 2010 03:45:49 +0000 (16:45 +1300)]
Re-enable soft delete for yaffs1 mode.

Soft deletion was disabled because it messed up yaffs2 mode.
Soft deletion is not very valuable for yaffs2 mode, but has been
re-enabled for yaffs1 mode where it is far more value.

Also added a parameter to disable soft delete.

Signed-off-by: Charles Manning <cdhmanning@gmail.com>
9 years agoAdd scripts for realtime plotting erased psace vs free space
Charles Manning [Fri, 19 Mar 2010 03:06:14 +0000 (16:06 +1300)]
Add scripts for realtime plotting erased psace vs free space

9 years agoFix typo (and check git is working)
Wookey [Thu, 18 Mar 2010 21:44:53 +0000 (21:44 +0000)]
Fix typo (and check git is working)

9 years agoAdd work in progress yaffs tuning document
charles [Tue, 16 Mar 2010 03:34:57 +0000 (03:34 +0000)]
Add work in progress yaffs tuning document

9 years agoUpdate yaffs docs
charles [Tue, 16 Mar 2010 03:30:45 +0000 (03:30 +0000)]
Update yaffs docs

9 years agoAdd garbage collection control
charles [Mon, 15 Mar 2010 23:10:33 +0000 (23:10 +0000)]
Add garbage collection control