[6159] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

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

home help back first fref pref prev next nref lref last post