Hello Jens
To skip the reading of the checkpoint you will need to set
skip_checkpt_read=1 (ie. true, not false). You can also set
skip_checkpt_write=1 too to save writing the checkpt.
However... this should be considered a debugging step only. If the
checkpointing is messing things up then that indicates some problem.
Regards
Charles
On Mon, Nov 13, 2017 at 10:09 PM, Jens Rudberg <
jens@teenage.engineering>
wrote:
> Hi Charles.
> We're changing to mount with skip_checkpt_read=false as you suggest and
> remove the calls to sync() and see if this makes the filesystem 100%
> reliable.
> Let me know if you see anything in the logs or if there are tests we
> should run on the system.
>
> Best,
> Jens
>
> On 10 Nov 2017, at 05:52, Charles Manning <cdhmanning@gmail.com> wrote:
>
> Hello Jens
>
> On Thu, Nov 9, 2017 at 1:51 AM, Jens Rudberg <jens@teenage.engineering>
> wrote:
>
>> Hi,
>> During development of a new embedded platform I have run into an unwanted
>> behaviour by yaffs.
>> We use yaffs in direct mode on an micron SLC nand with 2k pages and
>> built-in ECC functionality.
>> It seems like yaffs sometimes roll back the file system when it is
>> mounted, even if there should be no checkpoint available.
>> We see this by noticing that sometimes after a sudden reboot / crash
>> files are rollbacked to previous versions.
>>
>> I was under the impression that the checkpoint is invalidated immediately
>> when a partition is mounted, but this may not be the case?
>>
>
> No it should be invalidated as soon as there is any modification to the
> filesystem (modify file/directory, delete file/directory or any garbage
> collection). If you don't do any modifications the checkpoint will stay
> "forever".
>
>
> Our current method to avoid this is to call yaffs_sync() after every file
>> operation, which doesn’t seems like the right way to do it.
>> yaffs_sync() both does a full sync including checkpoint.
>> replacing the calls to yaffs_sync() with yaffs_sync_files()
>>
>
> What happens if you don't use any checkpoint. eg. mount with
> skip_checkpt_read set to 1.
>
> I will have a look at the log and see if anything stands out.
>
> Regards
>
> Charles
>
>
>