Messages in this thread |  | | Date | Sun, 15 May 2005 20:23:35 -0400 | | From | Mark Lord <> | | Subject | Re: Sync option destroys flash! |
| |
All flashcards (other than dumb "smart media" cards) have integrated NAND controllers which perform automatic page/block remapping and which implement various wear-leveling algorithms. Rewriting "Sector 0" 10000 times probably only writes once to the first sector of a 1GB card. The other writes are spread around the rest of the card, and remapped logically by the integrated controller.
Linux could be more clever about it all, though. Wear-leveling can only be done efficiently on "unused" or "rewritten" blocks/pages on the cards, and not so well with areas that hold large static data files (from the point of view of the flash controller, not the O/S).
If we were really clever about it, then when Linux deletes a file from a flashcard device, it would also issue CFA ERASE commands for the newly freed sectors. This would let the card's controller know that it can remap/reuse that area of the card as it sees fit.
But it's dubious that a *short term* use (minutes/hours) of O_SYNC would have killed a new 1GB card.
Cheers - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |