[7121] in linux-scsi channel archive
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