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>