[8835] in linux-scsi channel archive
Re: Request splits
daemon@ATHENA.MIT.EDU (Alan Cox)
Wed May 17 20:27:33 2000
To: bapper@piratehaven.org (Brian Pomerantz)
Date: Thu, 18 May 2000 01:23:16 +0100 (BST)
Cc: linux-scsi@vger.rutgers.edu
In-Reply-To: <20000517171318.A14106@skull.piratehaven.org> from "Brian Pomerantz" at May 17, 2000 05:13:18 PM
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <E12sE5u-0000dy-00@the-village.bc.nu>
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
> attached to a QLogic 2200 Fibre Channel controller. I have applied
> the SGI Raw I/O patch to the 2.2.14 kernel running on a Compaq ES40
Dunno much at the SGI one, but Stephen Tweedie did stuff to do raw I/O
from userspace - DMAing from user pages.
> with Linux using a 1MB block size is around 60MB/s. This is about
>
> The number of requests serviced increases by two. If I increase the
> block size to 1024KB, the requests serviced increases by four. It is
> obvious the block is getting split up into 256KB chunks. My question
> is, where does the request get split?
Probably buy the scsi layer. The kernel gets a list of pages to write to the
controller and the PC lacks an IOMMU. Thus we send a scatter gather list
down to the controller. That sglist needless to say is often limited in
length by the hardware. In this case the limit seems to be 892 (with the
qlogicfc driver on a 32bit box). That would imply you can do more than
256K segments so Im puzzled where the limit you hit is
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu