tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bad144 - how useful still? Because it's annoyingly ubiquitous.



> On May 27, 2026, at 7:07 PM, Adrian Chadd <adrian%freebsd.org@localhost> wrote:
> 
> On x86, IIRC only the earliest IDE drives didn't do bad block remapping?
> I'm pretty sure I needed it on FreeBSD and NetBSD way back when for MFM/RLL
> drives were still cheap and plentiful and being thrown out for IDE drives.

TL;DR -
And so, as it turns out, the bad144 support in the ATA disk driver has been broken for *ages*.

Details -
The “wd” driver supports bad144 by of “internalizing” the bad144 table into an ascending list of LBAs, which it then consults in _wdc_ata_bio_start().  If an LBA what would be part of a given transfer is in that list, it falls back to single-sector I/O for the transfer and when it finally gets to the sector that’s in the list, performs the block remap for that sector.  All well-and-good.

Except.

Nothing was populating that list.  (*lol*)

I mean, if someone ran bad144(8) it might have populated it once.  But upon reboot, nothing would repopulate it from the bad144 table on-disk, read in as part of readdisklabel().

I am thus led to conclude that no one will miss it if I remove it from the ATA code completely.

-- thorpej



Home | Main Index | Thread Index | Old Index