Re: [Yaffs] yaffs1 page_status = 0

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Bettega Stefano
Date:  
To: yaffs
Subject: Re: [Yaffs] yaffs1 page_status = 0
Hi Charles,

>> - may mount mark blocks as deleted?
>
> What do you mean by that?
>
> When Yaffs scans for bad blocks it just looks at the bad block markers.

SO long as those are marked, it does not matter what the other spare/tags
bytes look like. They can be all 0x00, all 0xff or anything inbetween.

I'm wondering this: assuming that I have a correct file system, when I mount
it and read some files, why a block is marked as deleted? Does yaffs perform
such an operation by its own just only mounting filesystem and reading data,
even if I don't do any explicit write to file system? Can a garbage collection
operation do this kind of operation? And in this case, who and when runs
the gc?

I agree with you: I don't want to put a band aid on this problem, rather
than finding out what is going wrong.

Threading access is protected via YDI locking mechanism, and I'm pretty sure
that no threading issue is present: all of the operations are performed on
startup by only a thread, then a second one comes up ad it's responsible
for the writing operations. After startup no file is left opened.

Devices leave factory up and running, and problems arises after some usage:
system starts up signalling that a configuration file is missing. Downloading
the file to a PC, we found that a block of 512 bytes was filed with zeros,
and this lead us to found the page was marked as deleted. We verified that
there is always a lot of unused space in each partition, so that no recirculation
problem seems to take part into this issue, and we were unable to find a
way to reproduce problem.

Thanks for your help.
Regards,
Stefano