[1567] in linux-scsi channel archive
Re: SCSI st module question
daemon@ATHENA.MIT.EDU (Kai M{kisara)
Tue Mar 18 02:10:12 1997
Date: Tue, 18 Mar 1997 08:58:13 +0200 (EET)
From: Kai M{kisara <makisara@abies.metla.fi>
Reply-To: Kai.Makisara@metla.fi
To: linux-scsi@vger.rutgers.edu
cc: markk@apertus.com
In-Reply-To: <9703180002.AA27606@corona>
On Mon, 17 Mar 1997, Mark Kazimer wrote:
...
> I configured a 2 Meg buffer under 1.2.13 and it worked great there.
>
> I rebuilt the 2.0.18 st driver module directly and added some debug
> code, and it appears that it's calling the kmalloc() function to
> allocate its buffer, but the kmalloc() call will only accept values
> 128K and less.
>
It is actually not using kmalloc but get_free_pages() has the same
restriction. In 1.2.13 the drivers allocated memory in a different way and
did not have this limitation.
IMHO it is better to use a user space buffer program between the program
writing the archive and the tape. In this way the buffer space is
allocated only when really writing tape. Even a 32 kB driver buffer is
usually large enough to smooth the fluctuations in the SCSI traffic. The
user space buffer then smooths the fluctuations resulting from the
operation feeding the tape.
A simple buffer program is dd. I have used it quite successfully earlier.
The drawback with dd is that it is not doing double buffering. There are
programs doing double buffering but I have never tried them. I think one
is called 'buffer'.
Kai