What's the point of flash wear leveling, again?
Look at ubifs for example. When a block starts getting "old" and growing a lot of ECC-correctable errors, it marks the block bad pre-emptively and moves your stuff to a better block. If it tries to write to a block and it doesn't work, it marks the block bad and moves your stuff to a better block. So it's quite good at dealing with blocks that go bad.
Is there really anything statistically better about moving your stuff around pre-emptively, before the block goes bad, rather than just moving it around after the block goes bad?
As far as I can tell, once something is written successfully, you're unlikely to lose more than a few bits at a time, which ECC (and then UBI's auto-migration-with-too-many-ECC-fixes feature) can safely recover as long as you read your data every now and then to check on it. But maybe there's some block failure mode I'm not understanding.
Why would you follow me on twitter? Use RSS.