[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47617E72.6080504@rtr.ca>
Date: Thu, 13 Dec 2007 13:48:18 -0500
From: Mark Lord <lkml@....ca>
To: Jens Axboe <axboe@...nel.dk>,
IDE/ATA development list <linux-ide@...r.kernel.org>,
Linux Kernel <linux-kernel@...r.kernel.org>,
linux-scsi <linux-scsi@...r.kernel.org>
Subject: Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
Mark Lord wrote:
> (resending with corrected email address for Jens)
>
> Jens,
>
> I'm experimenting here with trying to generate large I/O through libata,
> and not having much luck.
>
> The limit seems to be the number of hardware PRD (SG) entries permitted
> by the driver (libata:ata_piix), which is 128 by default.
>
> The problem is, the block layer *never* sends an SG entry larger than
> 8192 bytes,
> and even that size is exceptionally rare. Nearly all I/O segments are
> 4096 bytes,
> so I never see a single I/O larger than 512KB (128 * 4096).
>
> If I patch various parts of block and SCSI, this limit doesn't budge,
> but when I change the hardware PRD limit in libata, it scales by exactly
> whatever I set the new value to. This tells me that adjacent I/O segments
> are not being combined.
>
> I thought that QUEUE_FLAG_CLUSTER (aka. SCSI host .use_clustering=1) should
> result in adjacent single pages being combined into larger physical
> segments?
>
> This is x86-32 with latest 2.6.24-rc*.
> I'll re-test on older kernels next.
...
Problem confirmed. 2.6.23.8 regularly generates segments up to 64KB for libata,
but 2.6.24 uses only 4KB segments and a *few* 8KB segments.
???
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists