Timothy Manning [Wed, 6 Oct 2010 01:52:43 +0000 (14:52 +1300)]
yaffs Use file emulator for python test
Change the python test library to use a file-backed emulator
for the yaffs2 mount rather than use a ram-based emulator.
Signed-off-by: Timothy Manning <tfhmanning@gmail.com>
Timothy Manning [Wed, 6 Oct 2010 01:42:57 +0000 (14:42 +1300)]
yaffs Add first cut python browser for yaffs direct
A python based browser for working with yaffs direct.
More to follow...
Signed-off-by: Timothy Manning <tfhmanning@gmail.com>
Timothy Manning [Tue, 5 Oct 2010 00:43:23 +0000 (13:43 +1300)]
starting on python browser
Signed-off-by: Timothy Manning <tfhmanning@gmail.com>
Charles Manning [Fri, 1 Oct 2010 02:13:10 +0000 (15:13 +1300)]
yaffs Add axes to data plotter
This is just cosmetics for the script that plots free data.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Wed, 29 Sep 2010 23:53:05 +0000 (12:53 +1300)]
yaffs Update README-linux to reflect kernel patching changes
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Sun, 26 Sep 2010 23:24:58 +0000 (12:24 +1300)]
yaffs Increase size of test tmpfs area
The yaffs direct tests run in a tmpfs mount so that they run faster
and don't hit the disk.
The previous size was not enough to run all the tests in parallel.
Increase to 2G bytes.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Sat, 25 Sep 2010 04:13:43 +0000 (16:13 +1200)]
yaffs Clean up some code
Clean up some code. eg remove some conditional compilation
and obsolete code.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Sat, 25 Sep 2010 02:48:37 +0000 (14:48 +1200)]
yaffs Remove obsolete list debugging code
This code does not work any more so may as well delete it.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Sat, 25 Sep 2010 02:21:44 +0000 (14:21 +1200)]
yaffs Tweaks to single and multi-version yaffs
Strip multi-version code out of single version VFS glue.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Sat, 25 Sep 2010 01:27:11 +0000 (13:27 +1200)]
yaffs Add multi and single version Linux glue code
First step to single/mutli veriosns of yaffs for mainlining.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Tue, 21 Sep 2010 01:44:16 +0000 (13:44 +1200)]
yaffs Sort out some Linux multi-version compilation issues
Fix problems where some versions were not compiling.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Mon, 20 Sep 2010 09:04:16 +0000 (21:04 +1200)]
yaffs Add sharing control to yaffs direct
This is done mainly to support sharing control in WinCE.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Charles Manning [Fri, 17 Sep 2010 02:31:57 +0000 (14:31 +1200)]
yaffs Modify mkyaffs2image.c
Apply Chuck's patches and some other mods.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Charles Manning [Wed, 30 Jun 2010 04:06:45 +0000 (16:06 +1200)]
yaffs Reactoring WIP
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
Charles Manning [Thu, 6 May 2010 22:06:24 +0000 (10:06 +1200)]
yaffs Move docs to other repository
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
jenny [Tue, 20 Apr 2010 10:16:26 +0000 (11:16 +0100)]
Adding HowYaffsWorks.pdf for users
Signed-off-by: jenny <jenny@basil.follybridge>
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>
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>
Charles Manning [Fri, 16 Apr 2010 00:13:27 +0000 (12:13 +1200)]
work in progress
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>