faster lp driver for 4.2

stevens at hsi.UUCP stevens at hsi.UUCP
Thu May 3 07:18:45 AEST 1984


We have modified the 4.2 line printer driver (LP11) to reduce the amount of
processing it does on every character output.  We have a fast, smart
line printer (DEC LP27) that handles all of the tests done in
lpcanon(), all by itself.  Furthermore, with the spooler filter provided
with 4.2, underlining is handled by the filter (where it belongs),
so there is no need for the driver to look for backspaces.

In lpwrite() instead of calling lpcanon() for every character I expanded the
function lpoutput() in-line.  I will provide the diffs to anyone who
is interested.

In a test of printing a 2000-line file, the amount of system time was
reduced by a factor of 2.8, using the new driver.  The clock time was
identical in both cases, which means we were driving the printer at its
full speed (~1,000 lines/min), on an idle 750.  The faster version is
implemented with a new minor device flag, so the old code is still there
if needed.

The real solution is to drive a fast printer like this with a DMA
controller like the DMF32 (which we have).  As soon as we get the
cable for the DMF32/LP27 and hook it up, I'll measure the system time
again.

	Richard Stevens
	Health Systems International, New Haven, CT
	{ decvax | hao | seismo | sdcsvax } ! kpno ! hsi ! stevens
                                             ihnp4 ! hsi ! stevens



More information about the Comp.unix.wizards mailing list