More intellegent bad block reallocation in software?

John Bradford (john@grabjohn.com)
Mon, 2 Dec 2002 23:20:28 +0000 (GMT)


Is it possible, or at least feasible for certain disk devices, to
disable the firmware-level re-allocation of bad blocks, (note: I am
aware that disks typically have many bad blocks that are reliant on
ECC to function - I am refering to completely bad blocks, that are
replaced with a 'spare' block), and do this in software?

The reason I'm asking, is because presumably the 'spare' blocks are
kept at the end or the disk, or at least all in one place, (or
possibly throughout the disk in each ZBR zone). If this is the case,
then reading a single large file which is, according to the
filesystem, all in consecutive blocks, could involve several seeks to
the area where the spare blocks are.

My idea is that we could allocate one block out of every ten to be a
spare block, (which would reduce disk capacity by 10%), and then if a
block needed to be re-allocated, we could allocate one from the same
cylinder, therefore removing the need for the heads to seek across the
disk.

How easily could this be added to existing filesystems? Presumably
we'd need extra functionality in both filesystem code and the IDE and
SCSI code, and I realise that it might be completely impossible,
without custom firmware on the disk. It's an interesting idea
though.

John.
-
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/