lpt0 printer slows system response significantly

perryh at pluto.rain.com perryh at pluto.rain.com
Wed Nov 1 09:23:52 UTC 2006


> PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
>  18 root        1 -60 -179     0K     8K *Giant  15:09 77.05% irq7: lpt0
>  11 root        1 171   52     0K     8K RUN     48.0H 11.13% idle

The interrupt service for the parallel port is using over 3/4 of
the CPU, and half of the rest is "idle".

I take it this is a laser printer, which can consume bytes from the
parallel port as fast as the processor can send them.  Top-of-head
dump of ways to cut down on the interrupt traffic:

* Get a DMA-capable parallel port (supposing such exist, and FreeBSD
  supports them);

* Move the printer to a network connection or dedicated print server;

* Somehow tell the printer not to receive so quickly.

Alternatively, one possible way to handle that sort of interrupt
load without bogging down is to get a second CPU and run SMP, so
you've still got a CPU available for tasks when one is swamped
with interrupt traffic.

The other thing that *might* help some is more RAM, if it happens
that the idle time is caused by page wait due to the set of active
threads needing more RAM than you have, but this will at best get
your tasks up from 1/9 of the CPU to 2/9.


More information about the freebsd-questions mailing list