Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA
Path: utzoo!watmath!clyde!cbosgd!ihnp4!houxm!vax135!cornell!uw-beaver!tektronix!decvax!genrad!mit-eddie!godot!harvard!seismo!brl-tgr!tgr!speck@cit-vax.ARPA
From: Don Speck 
Newsgroups: net.unix-wizards
Subject: Easy 50 ips on TU80 (4.2bsd /etc/dump)
Message-ID: <8021@brl-tgr.ARPA>
Date: Tue, 5-Feb-85 03:36:56 EST
Article-I.D.: brl-tgr.8021
Posted: Tue Feb  5 03:36:56 1985
Date-Received: Fri, 8-Feb-85 01:48:57 EST
Sender: news@brl-tgr.ARPA
Organization: Ballistic Research Lab
Lines: 35


    A TU80 will switch into 25 ips streaming mode iff it gets at least
15 back-to-back writes, and will then try to switch into 100 ips mode.

    Following is an easy patch to get 4.2bsd /etc/dump to stream a TU80
at 100 ips, every other second.  It streams the tape for a second, then
shakes the disk for a second, streams, shakes, ... giving an average
throughput of about 50 ips.  This was on a 750 with FPA, some raw I/O
efficiency patches (coming soon), and kernel profiling compiled in.
It will do no good on a 730 or a start/stop drive.  Your speed and
line numbers may vary.
						Don

diff /usr/src/etc/dump/dumptape.c dumptu80.c
22c22,24
<	tblock = (char (*)[TP_BSIZE])malloc(writesize);
---
> #define CLUSTER 15	/* # of back-to-back writes to get TU80 streaming */
>	ntrec *= CLUSTER;	/* -- BEWARE -- when changing dumptape.c */
>	tblock = (char (*)[TP_BSIZE])malloc(CLUSTER*writesize);
69,71c71,73
<
<	trecno = 0;
<	if (write(to, tblock[0], writesize) != writesize){
---
>	char *wp = tblock[0];
>	for (trecno=CLUSTER; --trecno>=0; wp+=writesize)
>	    if (write(to, wp, writesize) != writesize){
99,100c101,103
<	asize += writesize/density;
<	asize += 7;
---
>	trecno = 0;
>	asize += CLUSTER*writesize/density;
>	asize += CLUSTER*10;		/* TU80's usually stretch out IRG's */