yaffs2.git
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

9 years agoAdd more detail to yaffs_debug
charles [Mon, 15 Mar 2010 22:27:15 +0000 (22:27 +0000)]
Add more detail to yaffs_debug

9 years agoAdd mkfiles test
charles [Mon, 15 Mar 2010 22:22:09 +0000 (22:22 +0000)]
Add mkfiles test

9 years agoAdd debug proc entry for gathering gc stats
charles [Mon, 15 Mar 2010 06:28:36 +0000 (06:28 +0000)]
Add debug proc entry for gathering gc stats

9 years agoGet rid of kernel lock, change stats to __u32
charles [Mon, 15 Mar 2010 06:07:44 +0000 (06:07 +0000)]
Get rid of kernel lock, change stats to __u32

9 years agoFaster block iteration where all blocks are being checked
charles [Fri, 12 Mar 2010 02:48:34 +0000 (02:48 +0000)]
Faster block iteration where all blocks are being checked

9 years agoReduce shrink header writing
charles [Fri, 12 Mar 2010 01:22:48 +0000 (01:22 +0000)]
Reduce shrink header writing

9 years agoAdd test for reduced shrink headers
charles [Thu, 11 Mar 2010 22:47:09 +0000 (22:47 +0000)]
Add test for reduced shrink headers

9 years agoUpdate tags when rewriting object header during gc
charles [Thu, 11 Mar 2010 02:44:43 +0000 (02:44 +0000)]
Update tags when rewriting object header during gc

9 years agoAdd more test info
charles [Thu, 11 Mar 2010 02:14:41 +0000 (02:14 +0000)]
Add more test info

9 years agoChange test to 32MB
charles [Thu, 11 Mar 2010 02:13:50 +0000 (02:13 +0000)]
Change test to 32MB

9 years agoMore testing
charles [Thu, 11 Mar 2010 02:12:57 +0000 (02:12 +0000)]
More testing

9 years agoClear obsolete files during simulation
charles [Wed, 10 Mar 2010 02:07:01 +0000 (02:07 +0000)]
Clear obsolete files during simulation

9 years agoClear all files at start of simulation
charles [Wed, 10 Mar 2010 01:57:25 +0000 (01:57 +0000)]
Clear all files at start of simulation

9 years agoAdd conditional compilation for background processing
charles [Wed, 10 Mar 2010 01:22:19 +0000 (01:22 +0000)]
Add conditional compilation for background processing

9 years agoFix typo
charles [Tue, 9 Mar 2010 20:41:46 +0000 (20:41 +0000)]
Fix typo

9 years agoAdd background processing of updated directories
charles [Tue, 9 Mar 2010 04:12:00 +0000 (04:12 +0000)]
Add background processing of updated directories

9 years agoAdd extra checks to oldest dirty sequence checking
charles [Sun, 7 Mar 2010 23:43:34 +0000 (23:43 +0000)]
Add extra checks to oldest dirty sequence checking

9 years agoDynamically update the oldest dirty sequence number so that it does not have to be...
charles [Sun, 7 Mar 2010 22:07:03 +0000 (22:07 +0000)]
Dynamically update the oldest dirty sequence number so that it does not have to be recalculated all the time

9 years agoAdd dummy uses for unused variables to clear compilation warnings
charles [Fri, 5 Mar 2010 02:26:27 +0000 (02:26 +0000)]
Add dummy uses for unused variables to clear compilation warnings

9 years agoRemove oldestDirtySequence from checkpoint
charles [Fri, 5 Mar 2010 01:49:00 +0000 (01:49 +0000)]
Remove oldestDirtySequence from checkpoint

9 years agoRemove obsolete pathDivider field
charles [Thu, 4 Mar 2010 22:39:46 +0000 (22:39 +0000)]
Remove obsolete pathDivider field

9 years agoClean up yaffs_FindNiceObject to be thread safe and simpler. Fix code that does a...
charles [Tue, 2 Mar 2010 02:29:21 +0000 (02:29 +0000)]
Clean up yaffs_FindNiceObject to be thread safe and simpler. Fix code that does a dummy tree insert during write

9 years agoAdd block refreshing feature
charles [Thu, 25 Feb 2010 22:41:46 +0000 (22:41 +0000)]
Add block refreshing feature

9 years agoFix problem caused by void ptr and clean up code paths
charles [Thu, 25 Feb 2010 22:38:03 +0000 (22:38 +0000)]
Fix problem caused by void ptr and clean up code paths

9 years agoAdd extra compiler flags
charles [Thu, 25 Feb 2010 22:34:47 +0000 (22:34 +0000)]
Add extra compiler flags

9 years agoPass correct argument to markSuperBlockDirty
charles [Wed, 24 Feb 2010 21:06:39 +0000 (21:06 +0000)]
Pass correct argument to markSuperBlockDirty

9 years agoFix parameter handling
charles [Fri, 19 Feb 2010 01:19:12 +0000 (01:19 +0000)]
Fix parameter handling

9 years agoRemove obsolete mtdif code
charles [Fri, 19 Feb 2010 01:06:31 +0000 (01:06 +0000)]
Remove obsolete mtdif code

9 years agoAdd default return
charles [Fri, 19 Feb 2010 01:05:48 +0000 (01:05 +0000)]
Add default return

9 years agoFix mtdif erasing to work properly for inband tags
charles [Fri, 19 Feb 2010 01:00:14 +0000 (01:00 +0000)]
Fix mtdif erasing to work properly for inband tags

9 years agoRationalise context and parameter handling
charles [Thu, 18 Feb 2010 01:31:29 +0000 (01:31 +0000)]
Rationalise context and parameter handling

9 years agoRationalise context and parameter handling
charles [Thu, 18 Feb 2010 01:18:04 +0000 (01:18 +0000)]
Rationalise context and parameter handling

9 years agoCleaner error reporting
charles [Wed, 17 Feb 2010 02:20:32 +0000 (02:20 +0000)]
Cleaner error reporting

9 years agomake clean works better
charles [Wed, 17 Feb 2010 02:18:57 +0000 (02:18 +0000)]
make clean works better

9 years agoClean ups and improve some out of memory handling
charles [Wed, 17 Feb 2010 02:01:25 +0000 (02:01 +0000)]
Clean ups and improve some out of memory handling

9 years agoFix wrong link
charles [Wed, 17 Feb 2010 00:51:15 +0000 (00:51 +0000)]
Fix wrong link

9 years agoAdd remount and forced unmount to yaffs direct
charles [Tue, 16 Feb 2010 23:24:57 +0000 (23:24 +0000)]
Add remount and forced unmount to yaffs direct

9 years ago Prevent resizes bigger than 2GBytes
charles [Wed, 10 Feb 2010 03:54:08 +0000 (03:54 +0000)]
 Prevent resizes bigger than 2GBytes

9 years agoBreak up yaffs direct reads and writes to prevent locking with long operations
charles [Fri, 5 Feb 2010 03:59:04 +0000 (03:59 +0000)]
Break up yaffs direct reads and writes to prevent locking with long operations

9 years agoFix typo
charles [Mon, 1 Feb 2010 00:58:04 +0000 (00:58 +0000)]
Fix typo

9 years agoUpdate Howyaffsworks
charles [Thu, 28 Jan 2010 01:17:29 +0000 (01:17 +0000)]
Update Howyaffsworks

9 years agoAdd own zero_user_segment for older kernels
charles [Tue, 19 Jan 2010 21:16:30 +0000 (21:16 +0000)]
Add own zero_user_segment for older kernels

9 years agoAdd documentation .odt files
charles [Mon, 18 Jan 2010 00:29:50 +0000 (00:29 +0000)]
Add documentation .odt files

9 years agoChange initnandsim to accept parameters to lauch different simulations
charles [Sun, 17 Jan 2010 23:58:49 +0000 (23:58 +0000)]
Change initnandsim to accept parameters to lauch different simulations

9 years agoChange parameters to packing/unpacking to fix mkyaffs2image compilation issue
charles [Mon, 11 Jan 2010 21:43:18 +0000 (21:43 +0000)]
Change parameters to packing/unpacking to fix mkyaffs2image compilation issue

9 years agoMove tracing out of yportenv.h
charles [Mon, 11 Jan 2010 04:06:46 +0000 (04:06 +0000)]
Move tracing out of yportenv.h

9 years agoChange direct handle management to use an inode layer to make it consistent with...
charles [Wed, 6 Jan 2010 04:00:23 +0000 (04:00 +0000)]
Change direct handle management to use an inode layer to make it consistent with Linux VFS. This is done to improve testing consistency.

9 years agoChange number of handles to 100
charles [Wed, 6 Jan 2010 03:58:05 +0000 (03:58 +0000)]
Change number of handles to 100

9 years agoAdd handle tests
charles [Wed, 6 Jan 2010 03:56:46 +0000 (03:56 +0000)]
Add handle tests

9 years agoFix issue with unlinking hardlinks failing sanity check
charles [Tue, 5 Jan 2010 22:58:15 +0000 (22:58 +0000)]
Fix issue with unlinking hardlinks failing sanity check

9 years agoAdd another test
charles [Tue, 5 Jan 2010 22:53:32 +0000 (22:53 +0000)]
Add another test

9 years agoClear creation counters when deinitialising.
charles [Fri, 1 Jan 2010 23:54:03 +0000 (23:54 +0000)]
Clear creation counters when deinitialising.

9 years agoAdd more comment for yaffs_PruneWorker function.
charles [Wed, 30 Dec 2009 22:30:12 +0000 (22:30 +0000)]
Add more comment for yaffs_PruneWorker function.

9 years agoChange nandsim invocation to use 256MB partition
charles [Fri, 25 Dec 2009 01:54:10 +0000 (01:54 +0000)]
Change nandsim invocation to use 256MB partition

9 years agoFix pruning to work correctly with wide Tnodes
charles [Fri, 25 Dec 2009 01:53:05 +0000 (01:53 +0000)]
Fix pruning to work correctly with wide Tnodes

9 years agoFSX runs much better with this
charles [Wed, 23 Dec 2009 03:14:17 +0000 (03:14 +0000)]
FSX runs much better with this

9 years agoFix obvious 64-bit issues. Mounts and does basic touch, rm etc
charles [Tue, 22 Dec 2009 04:09:06 +0000 (04:09 +0000)]
Fix obvious 64-bit issues. Mounts and does basic touch, rm etc

9 years agoNew partial block handing to improve robustness
charles [Mon, 14 Dec 2009 22:03:05 +0000 (22:03 +0000)]
New partial block handing to improve robustness

9 years agoAdd fuzzer work in progress
charles [Mon, 14 Dec 2009 19:46:27 +0000 (19:46 +0000)]
Add fuzzer work in progress

9 years agoUpdate README
charles [Mon, 14 Dec 2009 19:43:29 +0000 (19:43 +0000)]
Update README

9 years agoUpdate not stress test
charles [Mon, 14 Dec 2009 19:42:36 +0000 (19:42 +0000)]
Update not stress test

9 years agoChange to strnlen() and strncpy() to avoid problems from unbounded strings
charles [Mon, 7 Dec 2009 01:17:33 +0000 (01:17 +0000)]
Change to strnlen() and strncpy() to avoid problems from unbounded strings

9 years agoClear shadowing during garbage collection since its work is done
charles [Sun, 6 Dec 2009 22:53:10 +0000 (22:53 +0000)]
Clear shadowing during garbage collection since its work is done

9 years agoAdd tracMask control option to tests to allow them to run quicker
charles [Sun, 6 Dec 2009 22:06:48 +0000 (22:06 +0000)]
Add tracMask control option to tests to allow them to run quicker

9 years agoFix problem where symllink alias pointer was being used after free
charles [Thu, 3 Dec 2009 03:42:28 +0000 (03:42 +0000)]
Fix problem where symllink alias pointer was being used after free

9 years agoAdd more info to python test
charles [Thu, 3 Dec 2009 03:28:09 +0000 (03:28 +0000)]
Add more info to python test

9 years agoNew fix for readdir hang
charles [Sun, 29 Nov 2009 21:50:10 +0000 (21:50 +0000)]
New fix for readdir hang

9 years agoRevert readdir locking fix that doesn't work properly
charles [Sun, 29 Nov 2009 21:42:47 +0000 (21:42 +0000)]
Revert readdir locking fix that doesn't work properly

9 years agoChange locking to allow reentry during readdir
charles [Wed, 11 Nov 2009 02:11:13 +0000 (02:11 +0000)]
Change locking to allow reentry during readdir

9 years agoUsing a bash-specific feature
charles [Wed, 11 Nov 2009 01:58:21 +0000 (01:58 +0000)]
Using a bash-specific feature

9 years agoFix low-mem issue
charles [Wed, 11 Nov 2009 01:40:41 +0000 (01:40 +0000)]
Fix low-mem issue

9 years agoAdd some handly Linux test stuff
charles [Wed, 11 Nov 2009 01:35:04 +0000 (01:35 +0000)]
Add some handly Linux test stuff

9 years agoImprove out of memory handling
charles [Tue, 10 Nov 2009 23:55:05 +0000 (23:55 +0000)]
Improve out of memory handling

9 years agoMore test stuff
charles [Mon, 9 Nov 2009 22:19:50 +0000 (22:19 +0000)]
More test stuff

9 years agoMore test code
charles [Mon, 9 Nov 2009 19:16:33 +0000 (19:16 +0000)]
More test code

9 years agoMore test tweaks
charles [Sat, 7 Nov 2009 22:35:15 +0000 (22:35 +0000)]
More test tweaks

9 years agoAdd fix for hanging objects
charles [Sat, 7 Nov 2009 02:06:58 +0000 (02:06 +0000)]
Add fix for hanging objects

9 years agoAdd cleanup for aborted checkpoint
charles [Tue, 3 Nov 2009 02:41:00 +0000 (02:41 +0000)]
Add cleanup for aborted checkpoint

9 years agoAdd extra info to checkpoint trace
charles [Tue, 3 Nov 2009 02:36:30 +0000 (02:36 +0000)]
Add extra info to checkpoint trace

9 years agoAdd more tracing to tests
charles [Tue, 3 Nov 2009 01:30:12 +0000 (01:30 +0000)]
Add more tracing to tests

9 years agoAdd option descriptions
charles [Fri, 30 Oct 2009 02:32:32 +0000 (02:32 +0000)]
Add  option descriptions

9 years agoChange default trace mask
charles [Fri, 30 Oct 2009 02:31:38 +0000 (02:31 +0000)]
Change default trace mask

9 years agoFix checkpoint to handle out of space conditions better
charles [Thu, 29 Oct 2009 03:05:55 +0000 (03:05 +0000)]
Fix checkpoint to handle out of space conditions better