Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jun 1995 21:54:23 -0500 (CDT)
From:      Mike Pritchard <mpp@legarto.minn.net>
To:        hackers@freebsd.org
Subject:   why won't my tape drive keep streaming?
Message-ID:  <199506050254.VAA01688@mpp.com>

next in thread | raw e-mail | index | archive | help
I have an Archive 2150S SCSI tape drive attached to An Adaptec 2842VL
controller.  This drive is capable of writing 6MB+ per minute, but
I rarely see that under FreeBSD (running -current).  Often the drive will
start out streaming, writing 5.5MB/min - 6MB/min.  After a while,
and for no apparent reason, the drive will stop streaming, and
throughput drops down to as bad as 1MB/min - 3MB/min.  This
happens even on a totally idle machine with just the test program
running.  

I've also tried several different tapes, so I don't think it is a 
media problem.  Plus, the drive will stream with a tar program that 
supports drive under DOS.

Usually when this happens the drive won't start streaming again
until the program stops and closes/re-opens the tape device and starts
writing again (although the test I have running right now seems
to have started streaming again after dropping to start/stop mode
for about 15 megabytes, but that is unusual).

I've been running these tests with nothing else running on
the machine, and it is doing all of the tape writes directly
from memory - no disk access is involved.  I've tried writes
with sizes ranging from 512 bytes at a time all the way up to 10 
megabytes.  Writes of size 10240 bytes seem work the best, but even 
those usually fall off after a while and stop streaming.

Has anyone else seen this problem with this tape drive,
or have any ideas as to what the problem might be?

Reads from the tape drive don't seem to suffer from this problem.

Basically the guts of the test program looks like:

	dev = argv[1];
	bsize = atol(argv[2]);
	bcount = atol(argv[3]);
	buf = malloc(bsize));
	fd = open(dev, O_RDWR));
	for (i = 0; i < bcount; i++) {
		if (write(fd, buf, bsize) <= 0) {
			perror("write");
			exit(1);
		}
	}
-- 
Mike Pritchard
mpp@legarto.minn.net
"Go that way.  Really fast.  If something gets in your way, turn"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199506050254.VAA01688>