[7435] in linux-scsi channel archive

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

Re: Can't allocate tape buffer

daemon@ATHENA.MIT.EDU (Kai Harrekilde-Petersen)
Wed Oct 27 03:56:03 1999

Message-ID: <67774DC8E18DD2119125400083002FC27F5E34@lv-426.olicom.dk>
From:   Kai Harrekilde-Petersen <KHP@olicom.dk>
To:     linux-scsi@vger.rutgers.edu
Date:   Wed, 27 Oct 1999 09:54:03 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"

> From: Marc SCHAEFER [mailto:schaefer@alphanet.ch]
> 
> Harry Brueckner <brueckner@respublica.de> wrote:
> > I have the SCSI tape support compiled as a module and when 
> I try e.g. "mt
> > -f /dev/st0 status" I get the following lines in my syslog:
> 
> This could be the result of fragmentation. If the tape driver requests
> a single contiguous DMA buffer (instead of requesting  vmalloced memory,
> which needs to be scatter-gathered into physical pages, which may not be
> contiguous), maybe your system doesn't have enough contiguous page.
> 
> As a temporary work-around, try launching a big application (which will
> cause swapping, ie paging out), and exit it, maybe the module can be
loaded.

When I worked on the ftape project (years ago...), I had the same problem.

I came up with a tiny program that allocated & dirtied a large chunk of
memory.
I'm not sure if it gets distributed anymore (I called it 'swapout' for
obvious
reasons).

The program goes like this (caveat emptor; haven't used C for months):

#define SIZE (8*1024*1024)

main ()
{
  char *ptr;
  int i;

  ptr = malloc(SIZE);
  for(i=0;i< SIZE;i+=4096) *ptr[i]= '\0';
  free(ptr);
}

HTH,

--Kai


-
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