Re: max request size 1024KiB by default?

Johannes Stezenbach
2004-07-26T20:14:51Z

On Sat, Jul 24, 2004 at 06:58:02PM -0400, Lee Revell wrote:
> On Sat, 2004-07-24 at 07:27, Rudo Thomas wrote:
> > > HD info:
> > > /dev/hdc:
> > >
> > > Model=Maxtor 6Y160P0, FwRev=YAR41BW0, SerialNo=Y44K8TZE
> > > Config={ Fixed }
> > > RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
> > > BuffType=DualPortCache, BuffSize=7936kB, MaxMultSect=16, MultSect=16
> > > CurCHS=4047/16/255, CurSects=16511760, LBA=yes, LBAsects=268435455
> > > IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
> > > PIO modes: pio0 pio1 pio2 pio3 pio4
> > > DMA modes: mdma0 mdma1 mdma2
> > > UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
> > > AdvancedPM=yes: disabled (255) WriteCache=enabled
> > > Drive conforms to: (null):
> >
>
> Your disk controller must not support that. It looks like the default
> is 1024KiB or whatever the max your controller supports is:

For drives smaller than 128GiB the "48-bit Address feature set" is optional,
hence many older drives do not support it (since the old 28-bit LBA
addressing is suffient).

With 28-bit addressing the number sectors which can be transferred
in one request is limited to 256. Linux 2.4 limited this further
to 128 (i.e. 64KiB). With 48-bit addressing up to 2^16 sectors
could be transferred in one request, but Linux 2.6 puts an arbitrarily
chosen limit of 1024KiB on it.

'hdparm -I /dev/hda' will tell you whether your drive supports
48-bit addressing:

Commands/features:
Enabled Supported:
* 48-bit Address feature set

For full details see the ATA/ATAPI-7 spec at http://www.t13.org/.

Johannes