Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jun 1995 15:13:12 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        current@freebsd.org, jhs@vector.eikon.e-technik.tu-muenchen.de
Subject:   Re: kernel response
Message-ID:  <199506230513.PAA26155@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>When I print via the standard spooler (lpr -#2), a 300K file, going to an hp3p
>laser via a parallel port, all screen updating goes dead for several seconds,
>( the -#2 doubles the data, doesnt use the PCL5 print twice escape sequence).

Interrupt driven lpt output can't go faster than about 150K/sec to an
ISA port (each byte takes at least 4 i/o's in the driver and 2 in the
interrupt handler (unless AUTO_EOI_1 is defined - it should be the
default but isn't) and each i/o takes > 1usec).  If the printer can
keep up with 150K/sec, then it will generate a solid block of interrupts
and timeout routines, including the one that updates the screen, will
not run for several seconds.  20 seconds for 3MB of output :-(.

>So it seems the parallel port output flush is running at too high a priority
>for too long.

It isn't all that high, but it's higher than none, so it blocks timeouts,
and it's equal to tty priority, so it may block echoing of type-ahead
even for the console.  sio uses timeouts so lpt interrupts certainly
block everything except the interrupt handler.

Bruce



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