kern/121686: [ata]: bogus CHS to LBA mapping in (at least) ata

Tektonaut tektonaut at fuckner.net
Tue Mar 25 11:35:53 UTC 2008


David Schultz wrote:
> This is a problem with some CD-ROMs, too, except in the case of
> CD-ROMs, the problem is more fundamental: the official standard
> allows the drive to overestimate the disc's capacity by a few
> sectors.

Sounds like the drives are guessing the correct sector count...

> GEOM just exacerbates the problem by having a dozen
> different providers each try to read the last sector. The latter
> issue has been discussed and the general reaction is that it's
> undesirable to force GEOM providers to cope with misbehaving
> devices.

I can't see any problem here. Of course, GEOM should never try to
work arounf hardware issues, imho. Nobody would argue against a disk
with broken sector zero.

> The fact that these errors result in a timeout in FreeBSD but not
> under (at least) Solaris makes me wonder whether there isn't a
> better way for the ata driver to notice the error than a timeout.
> Then again, I'm not an expert on ata.

Maybe. But here the last sector definitively is readable, e.g. 
I can access this CF-Card with da(4) via umass in a card-reader.

As I understand ata-disk.c, it uses fixed and pre-defined values
for heads and sectors/track to calculate overall cylinder count.
Since this mapping also appears in ata-all.c, I have no idea where
to fix it. (Didn't looked in ata-raid.c) 

Soren, did already you found some time to look at it?

Why there is a need to "think" in CHS at all?

Regards, Adam

-- 


More information about the freebsd-bugs mailing list