Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Apr 2003 20:47:27 -0400
From:      Aniruddha Bohra <bohra@cs.rutgers.edu>
To:        freebsd-smp@FreeBSD.org
Subject:   Question about interrupt threads
Message-ID:  <3EA5E29F.9000801@cs.rutgers.edu>

next in thread | raw e-mail | index | archive | help
Hello
    I am posting it again to -smp as advised by Kris

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 ?

    Thanks

Aniruddha




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