cam: big transfers
Kenneth D. Merry
ken at kdm.org
Wed Apr 9 13:02:06 PDT 2003
On Wed, Apr 09, 2003 at 15:42:38 -0400, John S. Bucy wrote:
>
> Is it possible to do large (>MAXPHYS) bus transfers from a userland process
> via cam?
Not currently, no. You'd need to do some hacking around in
cam_periph_mapmem() to allow for larger buffers. It actually checks
against DFLTPHYS (64K) at the moment, not MAXPHYS, since some adapters
(e.g. the Adaptec 1542) can't handle more than 17 S/G segments.
If you just need larger buffers, and not performance, you could malloc a
new kernel-space buffer to hold the user data.
If you want performance as well, you could try writing your own routine
that would map N pages from userland into the kernel, where N would be
greater than MAXPHYS/PAGE_SIZE.
If you just need say 256K transferred at a time, you could try bumping
MAXPHYS to that and changing cam_periph_mapmem() to check against MAXPHYS
as long as your hardware can support that.
Ken
--
Kenneth Merry
ken at kdm.org
More information about the freebsd-scsi
mailing list