Interrupt latency problems

Bruce Evans bde at zeta.org.au
Sat May 10 20:50:07 PDT 2003


On Sat, 10 May 2003, Poul-Henning Kamp wrote:

> In message <1052570246.27195.6.camel at cf.freebsd-services.com>, Paul Richards wr
> ites:
> >I'm having real problems with current with heavy disk activity.
> >
> >When working in X and updating ports which causes a lot of disk activity
> >I get *very* poor interactive responses. Keypresses can not appear for
> >seconds and mouse movement is very jerky and unresponsive.
> >
> >I'm wondering if something is holding locks a long time in interrupt
> >handlers and causing mouse/keyboard interrupts to be lost?
>
> We have this lock called "Giant" which we're trying to get rid off...

Giant shouldn't cause such enormous latency as several seconds.  Most
likely, something _outside_ of interrupt handlers is holding Giant for
too long.  Interrupt handlers are more aware that they shouldn't run
for too long, while code running outside of interrupt handlers was
mostly written under the assumption that it can run for as long as
necessary to do whater it is asked to do.

At least on i386's, all interrupts are latched by the lowest levels of
the interrupt handling code, so it is almost impossible to lose one
completely.  Events that the interrupts signal may be lost, depending
on how much buffering the interrupting device has.

Bruce


More information about the freebsd-current mailing list