Subject: Re: CVS commit: src/sys/dev/ata
To: Dave Sainty <dave@dtsp.co.nz>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: source-changes
Date: 07/05/2005 09:10:31
On Tue, Jul 05, 2005 at 07:32:04AM +1200, Dave Sainty wrote:
> Manuel Bouyer writes:
> 
> > On Sat, Jul 02, 2005 at 04:29:01AM +0000, David Sainty wrote:
> > > [...]
> > > [An alternative approach is to just always drop to LBA48 if the request
> > > happens to pass by sector 0xfffffff and the drive reported as larger than
> > > 0xfffffff sectors.  My understanding is that the 32 bit addressing below
> > > 0x10000000 is purely there as a performance booster, not to resolve a
> > > compatibility issue.]
> > 
> > It is. Some controllers can't do LBA48 properly. Large drives on such
> > controllers currently work fine if limited to 128GB.
> 
> They wouldn't be any worse off under the suggested scheme.  If they
> happen to have one of the crash-on-0xfffffff drives on such a
> controller they STILL couldn't use that sector, because then the drive
> would be crashing now.  And under the suggested scheme they would
> still be able to use the rest of the lower 128GB, like you suggest.

But with the current scheme, sector 0xfffffff can be accessed on
non-broken drive with non-LBA48 controllers. With your scheme such
setup would loose one sector, possibly with valuable data.

> 
> However, under the existing scheme, a person with a drive in the
> forced LBA48 list could NOT use that drive with a controller that
> can't do LBA48.  But under the suggested scheme those people would be
> able to use the lower 128GB like you suggest.

But there is probably no such setup in use today, as it wouldn't work
with the current code.

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--