From mboxrd@z Thu Jan 1 00:00:00 1970
From: Pat LaVarre
Subject: Re: bytes/CDB of SCSI pass thru grossly limited maybe
Date: 01 Sep 2004 09:20:28 -0600
Sender: linux-scsi-owner@vger.kernel.org
Message-ID: <1094052028.27196.6.camel@patlinux.iomegacorp.com>
References: <20040828143124.GB2518@suse.de>
<1093715498.3682.4.camel@mulgrave><20040828175547.GA8339@suse.de> <109371 7
255.3682.13.camel@mulgrave><20040828184104.GA8460@suse.de> <1093742128.16 7
0.2.camel@mulgrave><20040829134505.GB10384@suse.de><8AE29B65-FAB0-11D8-85F1
-00039398BB5E@ieee.org>
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Return-path:
Received: from email-out2.iomega.com ([147.178.1.83]:44459 "EHLO
email.iomega.com") by vger.kernel.org with ESMTP id S266864AbUIAPVv
(ORCPT );
Wed, 1 Sep 2004 11:21:51 -0400
In-Reply-To: <8AE29B65-FAB0-11D8-85F1-00039398BB5E@ieee.org>
List-Id: linux-scsi@vger.kernel.org
To: Alan Stern
Cc: linux-scsi@vger.kernel.org, Jens Axboe , James Bottomley
Alan S:
> > interested in trying higher values, ...
>
> a) whole revolution delays seen in bus traces
> b) no limit below 2 to 4 GiB in the standard for the bus
> c) device developers need xFFFF blocks per CDB
Also,
d) experience of lower values
I see usb-storage.ko runs 3X slow like ub.ko does if I ask to choke off
usb-storage at 4 KiB/CDB, same as ub.ko gives me by default today.
That is, we visibly run out of margin to allow for pointlessly
shattering streams into microscopic fragments at values maybe not far
enough from our max.
Pat LaVarre
$ sudo blockdev --flushbufs /dev/uba
BLKFLSBUF: Inappropriate ioctl for device
$ time sudo dd if=/dev/uba bs=64K skip=0 count=3200 >/dev/null
3200+0 records in
3200+0 records out
real 0m26.481s
user 0m0.007s
sys 0m0.598s
$
$ modprobe -r ub
$ modprobe usb-storage
$
$ ln -s /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:2.0/host1/1:0:0:0/max_sectors .
$ echo 240 | sudo dd of=max_sectors
0+1 records in
0+1 records out
$ cat max_sectors
240
$ sudo blockdev --flushbufs /dev/scd0
$ time sudo dd if=/dev/scd0 bs=1M skip=0 count=200 >/dev/null
200+0 records in
200+0 records out
real 0m8.420s
user 0m0.006s
sys 0m0.630s
$
$ echo 8 | sudo dd of=max_sectors
0+1 records in
0+1 records out
$ cat max_sectors
8
$ sudo blockdev --flushbufs /dev/scd0
$ time sudo dd if=/dev/scd0 bs=1M skip=0 count=200 >/dev/null
200+0 records in
200+0 records out
real 0m27.464s
user 0m0.002s
sys 0m0.766s
$
$ rm max_sectors
$