Date: Tue, 22 Apr 2003 17:49:03 -0400 From: Aniruddha Bohra <bohra@cs.rutgers.edu> To: freebsd-questions@FreeBSD.org Subject: Interrupt threads Message-ID: <3EA5B8CF.7080803@cs.rutgers.edu>
next in thread | raw e-mail | index | archive | help
Hello Reading the implementation of interrupt handling on i386, and reading Greg Lehey's Usenix paper on FreeBSD 5.0 SMP implementation, I understand that interrupt handling is done in process context. This is needed partly to support sleeping while handling the interrupt because GIANT needs to be locked and a sleep is possible there. My question is after all subsystems that lock giant are made INTR_MPSAFE will the implementation go back to non-process context interrupt handling (as in older versions) ? Moreover, will the locking be per-IRQ or there will be a global IRQ lock for ensuring atomic access to the ISRs ? Finally why do we need to create a kernel thread for each IRQ - why can't one kernel thread handle all the IRQs ? Please cc me as I am not subscribed. Thanks Aniruddha
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3EA5B8CF.7080803>