[7121] in linux-scsi channel archive

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

Re: scsi driver transfer size and sync mode

daemon@ATHENA.MIT.EDU (Tony Chung)
Thu Sep 2 21:12:18 1999

Date:   Thu, 02 Sep 1999 15:49:04 -0700
From:   Tony Chung <chungto@ampex.com>
To:     Doug Ledford <dledford@redhat.com>
CC:     linux-scsi@vger.rutgers.edu

Doug Ledford wrote:

> Tony Chung wrote:
> >
> ......
>
> > The scatter_gather/segments concept is due to a limitation of x86 platform that
> > only
> > allow DMA up to a 4K boundary.
>
> Not true.  My driver is happy to use S/G segments far larger than 4K in size
> as long as the segments are physically contiguous.  Check the SCSI clustering
> code.
>

Thank you for awakening me!  I can now get sustained transfer rate of close to 15MB/s
after only adding these two lines in  /etc/conf.modules:
keep
options st buffer_kbs=1024 max_sg_segs=128

write  1040384k bytes:
0.14user 6.44system 1:17.03elapsed 8%CPU (0avgtext+0avgdata 0maxresident)k
read 1 040384k bytes:
0.11user 10.46system 1:18.00elapsed 13%CPU (0avgtext+0avgdata 0maxresident)k

So apparently the extra copying from kernel space to user space is insignificant.

Now I may be a little worry about what will happened when direct DMA to user space
is supported in the future.
I think currently the st driver is capable to allocate 1024K contingous physical
memory
(through special kernel funciton) but in the case of a user space,  the malloc()  will
not be
able to map to a contingous physcial memory. Again this is speaking from my experience

from Solaris 7 and other Unices.  There must be a reason for the folks at Sun
Microsystem
to change their page size from 8k  (in Sparc platform) to 4k  for x86 platform.


--
=============================
Tony Chung




-
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