[6159] in linux-scsi channel archive
Re: how to get maximum datarate from SCSI
daemon@ATHENA.MIT.EDU (Kurt Garloff)
Tue Mar 23 21:50:23 1999
Date: Tue, 23 Mar 1999 23:07:31 +0100
From: Kurt Garloff <K.Garloff@ping.de>
To: Mateu Batle i Sastre <mbatle@iname.com>
Cc: linux-scsi@vger.rutgers.edu
Mail-Followup-To: Mateu Batle i Sastre <mbatle@iname.com>,
linux-scsi@vger.rutgers.edu
In-Reply-To: <000401be752b$90d75ff0$2900a8c0@pc1.preview.es>; from Mateu Batle i Sastre on Tue, Mar 23, 1999 at 01:49:18PM +0100
--i7F3eY7HS/tUJxUd
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
On Tue, Mar 23, 1999 at 01:49:18PM +0100, Mateu Batle i Sastre wrote:
> Hi everybody,
>=20
> I'm trying to get the maximum transfer datarate from several SCSI disks=
=20
> from a user application. I think the problem now is that all the transfers
> go through the buffer cache, which implies a lot of memory copy and this
> bounds the maximum I/O. It should be possible to access the SCSI disks
> bypassing the buffer cache of the block devices.=20
No. Memory is much faster than disk I/O. Evene the fastest disks are one
order of magnitude slower than RAM. And this is only for throughput.
Disk: 10MB/s; RAM: 100MB/s (and faster if in L2/L1 cache)
Additional seek times for RAM are about zero and disk is about 10ms!
Disk: 10ms; RAM: Cache line miss (60ns).
Unless you have a very special application, the idea of bypassing the buffer
cache makes no sense at all.
> Is there any easy way to do this ?
You have to get patches. See Doug's posting.
> My first option would be to use some special flag when openning the file
> to avoid going through the buffer cache. But I have not found anything=20
> similar.
In most cases, you will profit from the buffer cache, because the buffering
it does for you, is helpful. Unless you have an own cache with a very
careful and specialized design, you don't want to bypass the buffer cache.
> If not, I would have to modify the sd.c to to perform direct transfers=20
> without using the buffer cache.
You can do it by issueing SCSI commands using sg, if you really want to.
--=20
Dipl.Phys. Kurt Garloff <kurt@garloff.de> [Dortmund, FRG]
Plasma physics, high perf. computing [Linux-ix86,-axp, DUX]
PGP key: see mailheader / key servers [Linux SCSI driver: DC390]
--i7F3eY7HS/tUJxUd
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3in
iQCVAwUBNvgQoxaQN/7O/JIVAQGWIgP8DOGIn0P12HJcmrCsYW0cCJyqUC7Go2Qf
TD1zXTxl95FqdziYW3liru3AU2jbg87d5o5wYy7H26fvPU/2T0yYcp/ZGwVuU4e9
YAYJwqOB2WHjt1P+DPM09e2+Ccuoq58hY5sF2hDFG4p4TK4ZS7yGwvT+hiRHy2aG
zEdglFr6ORM=
=sHIP
-----END PGP SIGNATURE-----
--i7F3eY7HS/tUJxUd--
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu