<div class="gmail_quote">On Mon, Dec 6, 2010 at 1:04 AM, Chris Ball <span dir="ltr"><<a href="mailto:cjb@laptop.org">cjb@laptop.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi,<br>
<div class="im"><br>
   > That's strange, wherever I have used flash memory to serve as<br>
   > boot drive, the kernel/userspace waits for the writes to be<br>
   > complete before powering down. I have not experienced corruption<br>
   > that looks anything similar to what's described. So the software<br>
   > is thinking it has written it but it doesn't?<br>
<br>
</div>There are two separate transitions, and you're each talking about<br>
a different one:<br>
<br>
(1) From kernel to flash device:<br>
  * This can be waited on as you describe, because the kernel knows<br>
    when its dirty page cache has been written to the device.  "sync"<br>
    and reboot/shutdown all wait on this completing before they return.<br>
<br>
(2) From flash device to flash media:<br>
  * The flash device has internal memory that it uses to stage blocks<br>
    to be written to the media.  The kernel can't know when this is<br>
    happening, because it happens internally to the flash device.<br>
<br>
We've found instances of flash devices where you need to continue<br>
providing power for two seconds after (1) has finished, such that<br>
(2) can finish before power is lost, else corruption happens.<br>
(Requiring this is in violation of the relevant specs, but that's </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">hardware for you.)<br><br></blockquote>

<div><br></div><div>That behavior is what I would assume as the normal one but well, if it's that way. Seems like somebody forgot to add some type of capacitor in their SD card design. Perhaps this is an issue tied to micro SD cards, which have less room for somewhat redundant data structures in the application of cell phones and cameras.</div>

<div><br></div><div>Tiago</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- Chris.<br>
<font color="#888888">--<br>
Chris Ball   <<a href="mailto:cjb@laptop.org">cjb@laptop.org</a>><br>
One Laptop Per Child<br>
</font></blockquote></div><br>