speeding up 2.9 (4.2?)BSD uucico
scw at cepu.UUCP
scw at cepu.UUCP
Wed Oct 3 10:37:01 AEST 1984
*<eat that, bug>
This is a reinstallation of the cpu.speedup patch (from the news
package) as applied to the 2.9BSD uucico. This patch will also fix the
problem of very slow transfers that happen when using 2.9BSD uucico.
My sources tell me that the 2.9 and 4.2 BSD uucico packages are identical,
except for the sleep(1) bug. So the second patch may be applicable
there as well.
Two files are affected by this patch: condevs.c and pk1.c. One of the
patches to pk1.c must be applied in order to have uucico run at some reasonable
rate.
The patches to condevs.c were applied liberally, there may be extra
'linebaud= dev.D-speed;' lines where line speed is being changed for
strange reasons.
I'd like to thank Dr. Stan Sted (cepu!ucla-an!stan) and Kyle Henrickson
(cepu!ucla-ci!kyle) for acting as Guinea Pigs in this manner (but then they
got faster uucp Xfers out of it)<scw>
I'd also like to thank :
ihnp4!ut-sally!harvard!wjh12!sob, trwrb!wlbr!jm, and ihnp4!harvard!tardis!ddl
For the valuable inputs and pointers that they gave me.
diffs follow:
You must apply one or the other of these patches to pk1.c
This is patch #1 a minimal patch to fix the slowness problem (Not for 4.2)
*** pk1.c.O Mon Oct 1 17:03:08 1984
--- pk1.c.B Wed Jul 20 17:00:06 1983
***************
***************
*** 370,379
alarm(0);
return(-1);
}
PKASSERT(ret > 0, "PKCGET READ", "", ret);
b += ret;
}
alarm(0);
return(0);
}
--- 370,379 -----
alarm(0);
return(-1);
}
PKASSERT(ret > 0, "PKCGET READ", "", ret);
b += ret;
- sleep(1);
}
alarm(0);
return(0);
}
This SET of patches (to pk1.c and condevs.c) will add the cpu.speedup
feature to 2.9BSD uucico. It should also be applicable to 4.2BSD.
*** pk1.c Mon Oct 1 17:06:10 1984
--- pk1.c.B Wed Jul 20 17:00:06 1983
***************
*** 354,364
int fn, n;
register char *b;
{
register int nchars, ret;
- extern int linebaud; /* CPU SPEED --- SWS 10/1/84 */
if (setjmp(Getjbuf)) {
Ntimeout++;
PKDEBUG(4, "alarm %d\n", Ntimeout);
return(-1);
}
--- 354,363 -----
int fn, n;
register char *b;
{
register int nchars, ret;
if (setjmp(Getjbuf)) {
Ntimeout++;
PKDEBUG(4, "alarm %d\n", Ntimeout);
return(-1);
}
***************
*** 363,373
return(-1);
}
signal(SIGALRM, cgalarm);
alarm(PKTIME);
! for (nchars = 0; nchars < n; ) { /* SWS */
ret = read(fn, b, n - nchars);
if (ret == 0) {
alarm(0);
return(-1);
}
--- 362,372 -----
return(-1);
}
signal(SIGALRM, cgalarm);
alarm(PKTIME);
! for (nchars = 0; nchars < n; nchars += ret) {
ret = read(fn, b, n - nchars);
if (ret == 0) {
alarm(0);
return(-1);
}
***************
*** 371,382
alarm(0);
return(-1);
}
PKASSERT(ret > 0, "PKCGET READ", "", ret);
b += ret;
- nchars += ret; /* SWS */
- if (( nchars < n) && (linebaud > 0) && (linebaud < 4800))
sleep(1);
}
alarm(0);
return(0);
}
--- 370,379 -----
alarm(0);
return(-1);
}
PKASSERT(ret > 0, "PKCGET READ", "", ret);
b += ret;
sleep(1);
}
alarm(0);
return(0);
}
*** condevs.c Mon Oct 1 16:53:49 1984
--- condevs.BSD2.9 Tue Jul 26 15:10:59 1983
***************
*** 44,49
int nulldev(), nodev(), Acuopn(), diropn(), dircls();
- int linebaud;
-
#ifdef DATAKIT
int dkopn();
--- 44,47 -----
int nulldev(), nodev(), Acuopn(), diropn(), dircls();
#ifdef DATAKIT
int dkopn();
***************
*** 198,202
fflush(stdout);
fixline(dcr, dev.D_speed);
- linebaud = dev.D_speed; /* SWS 10/1/84 */
strcpy(devSel, dev.D_line); /* for latter unlock */
CU_end = dircls;
--- 196,199 -----
fflush(stdout);
fixline(dcr, dev.D_speed);
strcpy(devSel, dev.D_line); /* for latter unlock */
CU_end = dircls;
***************
*** 416,420
speed = atoi(fdig(flds[F_CLASS]));
fixline(dh, speed);
- linebaud = speed; /* SWS 10/1/84 */
sleep(1);
--- 413,416 -----
speed = atoi(fdig(flds[F_CLASS]));
fixline(dh, speed);
sleep(1);
***************
*** 636,640
fflush(stdout);
fixline(dcf, dev->D_speed);
- linebaud = dev-> D_speed;
DEBUG(4, "Fork Stat %o\n", lt);
if (lt != 0) {
--- 632,635 -----
fflush(stdout);
fixline(dcf, dev->D_speed);
DEBUG(4, "Fork Stat %o\n", lt);
if (lt != 0) {
***************
*** 717,721
sprintf(dcname, "/dev/%s", dev->D_line);
fixline(dnf, dev->D_speed);
- linebaud = dev -> D_speed;
sprintf(phone, "\02%s", ph);
DEBUG(4, "dc - %s, ", dcname);
--- 712,715 -----
sprintf(dcname, "/dev/%s", dev->D_line);
fixline(dnf, dev->D_speed);
sprintf(phone, "\02%s", ph);
DEBUG(4, "dc - %s, ", dcname);
***************
*** 787,791
fflush(stdout);
fixline(dcf, dev->D_speed);
- linebaud = dev -> D_speed;
DEBUG(4, "Fork Stat %o\n", lt);
if (lt != 0) {
--- 781,784 -----
fflush(stdout);
fixline(dcf, dev->D_speed);
DEBUG(4, "Fork Stat %o\n", lt);
if (lt != 0) {
***************
*** 859,863
if (dh >= 0) {
fixline(dh, dev->D_speed);
- linebaud = dev -> D_speed;
#ifdef HAYSTONE
write(dh, "\rATDT", 5);
--- 852,855 -----
if (dh >= 0) {
fixline(dh, dev->D_speed);
#ifdef HAYSTONE
write(dh, "\rATDT", 5);
***************
*** 988,992
next_fd = -1;
fixline(dnf, dev->D_speed);
- linebaud = dev ->D_speed;
DEBUG(4, "Hayes port - %s, ", dcname);
--- 980,983 -----
next_fd = -1;
fixline(dnf, dev->D_speed);
DEBUG(4, "Hayes port - %s, ", dcname);
***************
*** 1101,1105
/* modem is open */
fixline(dh, dev->D_speed);
- linebaud = dev ->D_speed;
/* translate - to % and = to & for VenTel */
--- 1092,1095 -----
/* modem is open */
fixline(dh, dev->D_speed);
/* translate - to % and = to & for VenTel */
***************
*** 1279,1283
}
fixline(dh, dev->D_speed);
- linebaud = dev -> D_speed;
/* translate - to K for Vadic */
--- 1269,1272 -----
}
fixline(dh, dev->D_speed);
/* translate - to K for Vadic */
***************
*** 1408,1412
}
fixline(va, dev->D_speed);
- linebaud = dev ->D_speed;
p_chwrite(va, STX); /* access adaptor */
--- 1397,1400 -----
}
fixline(va, dev->D_speed);
p_chwrite(va, STX); /* access adaptor */
***************
*** 1474,1478
}
fixline(i, dev->D_speed);
- linebaud = dev -> D_speed;
goto ret;
failret:
--- 1462,1465 -----
}
fixline(i, dev->D_speed);
goto ret;
failret:
--
Stephen C. Woods (VA Wadsworth Med Ctr./UCLA Dept. of Neurology)
uucp: { {ihnp4, uiucdcs}!bradley, hao, trwrb, sdcrdcf}!cepu!scw
ARPA: cepu!scw at ucla-cs location: N 34 3' 9.1" W 118 27' 4.3"
More information about the Comp.sources.unix
mailing list